函数(lambda()16)做什么?

函数(lambda()16)做什么?,lambda,racket,Lambda,Racket,这只返回# 我想不管我们输入什么,它都会返回16。但是我不知道如何证明它。你可以通过 (lambda () 16) 您可以通过调用返回的过程来测试您的假设。调用函数或过程f的语法是(f…,其中…表示参数。这里没有参数,所以它只是(f)。您可以从Read Eval打印循环(REPL)测试您的程序: 您也可以通过将匿名函数括在括号中直接调用它: > (define f (lambda () 16)) > (f) 没有输入。它可以完全以一种方式调用,不带参数。是的,它返回16,除非CP

这只返回
#

我想不管我们输入什么,它都会返回16。但是我不知道如何证明它。

你可以通过

(lambda () 16)

您可以通过调用返回的过程来测试您的假设。调用函数或过程
f
的语法是
(f…
,其中
表示参数。这里没有参数,所以它只是
(f)
。您可以从Read Eval打印循环(REPL)测试您的程序:

您也可以通过将匿名函数括在括号中直接调用它:

> (define f (lambda () 16))
> (f)

没有输入。它可以完全以一种方式调用,不带参数。是的,它返回16,除非CPU被窃听,你的计划出了问题,宇宙射线恰好在正确的时间击中你的计算机,或者发生了其他不寻常的事情。你说的“证明它”是什么意思?如果您想要一个非正式的解释,那就没什么好说的了:编写的函数不带任何参数并返回
16
,它不做任何其他事情。根据
lambda
的定义,我们仅通过简单的检查就可以看出这一点。如果你想要一个正式的证明,那么,你可以将Racket表达式转换成某种正式的系统(例如lambda演算),并在该设置中证明一些东西,但考虑到表达式的简单性和证明的琐碎性,这似乎没有什么帮助。你到底想了解什么?
> (define f (lambda () 16))
> (f)
> ((lambda () 16))