具有零参数的Scheme lambda表达式

具有零参数的Scheme lambda表达式,lambda,scheme,arguments,zero,Lambda,Scheme,Arguments,Zero,我认为这是一个很小的问题,但我还没有看到任何好的例子。我需要定义一个lambda表达式,它不接受任何参数,并且总是返回0 如何定义一个不带任何参数并返回某些内容的lambda表达式?lambda()0有什么问题?除了(lambda()0)的明显答案之外,许多Scheme实现都提供了一个const函数,该函数接受一个值并返回一个函数,该函数返回该值,而不管给定了什么参数(或缺少参数)。这不是一件事,只是碰巧这是我没有尝试过的一件事。您也可以随意将忽略的x输入交给它,(lambda(x)0)将执行相

我认为这是一个很小的问题,但我还没有看到任何好的例子。我需要定义一个lambda表达式,它不接受任何参数,并且总是返回0


如何定义一个不带任何参数并返回某些内容的lambda表达式?

lambda()0有什么问题?

除了
(lambda()0)
的明显答案之外,许多Scheme实现都提供了一个
const
函数,该函数接受一个值并返回一个函数,该函数返回该值,而不管给定了什么参数(或缺少参数)。

这不是一件事,只是碰巧这是我没有尝试过的一件事。您也可以随意将忽略的x输入交给它,(lambda(x)0)将执行相同的操作,但看起来更容易混淆。@1_2_3_Reapeater With(x)无论是否使用它,都需要一个参数才能工作。最好给它一个rest参数
(lambda rest 0)
,它可以忽略任意数量的参数。仅供参考,没有参数的函数通常称为thunk。
(define (always n)
  (lambda ignore n))

> (define always-0 (always 0))
> (always-0 10)
0
> (always-0 'a 'b' 'c)
0
> (always-0)
0