我在将以下内容从 let 形式转换为过程时遇到问题
( let (( a 5)
b (* 5 2))
(let (b (* a b)
(c 10))
(+ b c)))
let 表达式只是 lambda 的语法糖。
例如:
(let ((a 1)
(b 2))
(* a b))
与
((lambda (a b) (* a b)) 1 2)
首先,你必须修复它。
( let (( a 5)
(b (* 5 2)))
(let ((b (* a b))
(c 10))
(+ b c)))
LET的定义是
(let (( variable-name1 value1)
(variable-name2 value2)
(variable-namen valuen))
body)
转换为 lambda 是
((lambda (variable-name1 variable-name2 variable-namen) body) value1 value2 valuen)