Lisp格式:let to lambda

Lisp格式:let to lambda,lambda,scheme,lisp,let,Lambda,Scheme,Lisp,Let,我不熟悉Lisp计划。我遇到了这个使用“let”的代码。如何用lambda替换它 这是密码 (define Gen-Decoder-A (lambda (p) (define check-decode (lambda (n) (num-valid-words (encode-p p (encode-n n)))) ) (let ((decode-compare (map chec

我不熟悉Lisp计划。我遇到了这个使用“let”的代码。如何用lambda替换它

这是密码

    (define Gen-Decoder-A
      (lambda (p)
        (define check-decode
          (lambda (n) 
            (num-valid-words (encode-p p (encode-n n))))
          )
        (let ((decode-compare (map check-decode abc-nums)))
          (encode-n (get-position (apply max decode-compare) decode-compare)))
        ((lambda 
        )
      )
以下是完整代码的链接:

let在Gen-Decoder-A中
帮助我将let更改为lambda

A
let
只是
lambda
的语法糖-可以将
let
变量重写为
lambda
参数,这些参数在调用
lambda
时绑定。例如,此表达式:

(let ((decode-compare (map check-decode abc-nums)))
  (encode-n (get-position (apply max decode-compare) decode-compare)))
相当于:

((lambda (decode-compare)
  (encode-n (get-position (apply max decode-compare) decode-compare)))
 (map check-decode abc-nums))

let
只是
lambda
的语法糖-可以将
let
变量重写为
lambda
参数,这些参数在调用
lambda
时绑定。例如,此表达式:

(let ((decode-compare (map check-decode abc-nums)))
  (encode-n (get-position (apply max decode-compare) decode-compare)))
相当于:

((lambda (decode-compare)
  (encode-n (get-position (apply max decode-compare) decode-compare)))
 (map check-decode abc-nums))