【问题标题】:Lisp Scheme : let to lambdaLisp 方案:让 lambda
【发布时间】:2018-05-17 11:44:12
【问题描述】:

我是 Lisp Scheme 的新手。我遇到了这个使用“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 
        )
      )

这里是完整代码的链接:https://github.com/corypisano/CS314/blob/master/Project2/decode.ss

let 在 Gen-Decoder-A 中 帮我把 let 改成 lambda

【问题讨论】:

    标签: lambda scheme lisp let


    【解决方案1】:

    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))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-10
      • 2011-02-26
      相关资源
      最近更新 更多