我用let
来创建一个临时变量,然后在下一个语句中使用这个临时变量。然而,DrScheme抱怨,`让`在Scheme中工作?
let: bad syntax (not an identifier and expression for a binding) in: temp
这是我的代码片段:
(define (case-one-helper str)
(let (temp (substring str (+ 3 (string-contains str "my"))))
(substring temp (string-contains temp " "))))
不知变量由let
创造的价值有在编译时间知道?
编辑 我刚刚想通了,错过了()
。
感谢,
请参阅https://people.eecs.berkeley.edu/~bh/ssch9/lambda.html – nicoabie 2017-11-22 02:05:11
中的“让真相”一节有趣的阅读...在这里查看我的答案,我会说是,并且不,从某种意义上说,'let'可以作为一个lambda表达式来实现,并且调用lambda表达式,但不止于此。如果您像SICP一样从头开始编写计划解释器,您会看到'let'有很多关于它的记录,因为您正在命名表达式的结果。 – Jason 2017-11-25 16:52:22