2017-05-30 56 views
1

对于我所知道的函数式语言通常使用的λ为参照匿名函数,但我不认为是真正有用的使用方法:的这是在这种情况下使用lambda的原因?

(define square 
    (lambda (x) (* x x))) 

代替

(define (square x) 
    (* x x)) 

为什么几乎所有我找到的关于Scheme的文件都使用了第一种形式? 谢谢

回答

1

我总是使用这个语法,因为它是显式的。 lambda定义了一个函数。函数没有名字。然后你将这个函数分配给一个变量。变量有名字。形式(define (f x) ...)仅仅是一个非常常见的语法糖,但掩盖了一个事实,即scheme是一个lisp-1。