如果我这样做,我会得到什么样的东西?
(car (list lambda lambda))
Run Code Online (Sandbox Code Playgroud)
我以为我会lambda
回来,这意味着我可以做到
(define my_lambda (car (list lambda lambda)))
(define foo (my_lambda (n) (+ n n)))
Run Code Online (Sandbox Code Playgroud)
但那没用!谢谢,
lambda
是一种特殊形式(意思是:标准评估规则不适用于它),是语言的核心原语的一部分,而不是可以赋给变量的符号或其他类型的值.
回答你的问题,评估表达式后你会得到的"那种东西" (list lambda)
将取决于你正在使用的Scheme解释器,但通常你会得到一个错误.例如,DrRacket抱怨如下:
lambda: bad syntax in: lambda
Run Code Online (Sandbox Code Playgroud)