早教吧 育儿知识 作业答案 考试题库 百科 知识分享

最近接触COMMONLISP里面的lambda很不理解看了一个例子楞是没看懂例1.(apply'(lambda(xyz);;;(*(-yz));;;)'(52014);;;);;;返回30

题目详情
最近接触COMMON LISP 里面的lambda很不理解 看了一个例子 楞是没看懂
例1.(apply '(lambda (x y z) ;;;
(* (- y z)) ;;;
)
'(5 20 14) ;;;
) ;;;返回30
这里的30怎么算的? 如果可以的话 请再举个例子 谢谢了
(mapcar #' (lambda (x y) (+ x y))
(mapcar #'(lambda (z) (+ 10 z)) '(4 5 6))
'(200 300)
)
这里的 # 是什么意思
▼优质解答
答案和解析
例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),回答完毕.
祝你解决困惑.