我认为这是一个非常微不足道的问题,但我还没有看到任何好的例子。我需要定义一个不带参数且始终返回 0 的 lambda 表达式。
我将如何定义一个不带任何参数并返回一些东西的 lambda 表达式?
(lambda () 0) 有什么问题?
除了显而易见的答案之外(lambda () 0)
,许多 Scheme 实现都提供了一个const
函数,该函数接受一个值并返回一个无论给出什么参数(或缺少参数)都返回该值的函数。
(define (always n)
(lambda ignore n))
> (define always-0 (always 0))
> (always-0 10)
0
> (always-0 'a 'b' 'c)
0
> (always-0)
0