当前位置:回答三>生活百科>最近接触COMMON LISP 里面的lambda很不理解 看了一个例子 楞是没看懂

最近接触COMMON LISP 里面的lambda很不理解 看了一个例子 楞是没看懂

2024-06-19 13:25:43 编辑:join 浏览量:609

最近接触COMMON LISP 里面的lambda很不理解 看了一个例子 楞是没看懂

例1:中函数表达中 (* (- y z)) ,缺X项描述,如果改为 (* x (- y z)),则相当于(5X(20-14)=30.

问题补充中:#号无意义,省去后,函数结果为(214 315)

计算过程是:先计算 (mapcar '(lambda (z) (+ 10 z)) '(4 5 6)) ,得到(14 15 16)

再计算(mapcar '(lambda (x y) (+ x y))

(mapcar '(lambda (z) (+ 10 z)) '(4 5 6)

'(200 300)

)

等同于计算

(mapcar '(lambda (x y) (+ x y))

'(14 15 16)

'(200 300)

)

依次计算表中 (200+14=214 ), (300+15=315),得到 '(214 315),回答完毕。

祝你解决困惑。

lambda是定义匿名函数的。例子里的算法是定义了个匿名函数,有3个参数x y z 。进行了个算式计算:(y-z)* x 【这里你那个例子好像写错了,第二行应该是(* (- y z) x)】 然后用apply函数把(5 20 14)这个表传给那个匿名函数,分别作为x y z代入。执行了 20-14= 6 6*5=30. 所以最后返回30.

标签:COMMON,LISP,lambda

版权声明:文章由 回答三 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.huidasan.com/life/132953.html
热门文章