(定义(p)(p))是什么?

aym*_*man 5 lisp scheme sicp

在练习1.5中,我正在阅读“计算机程序的结构和解释”第二版,我发现一个组合,我不知道它的确切作用(define (p) (p))

当我调用该过程时,(p)我的光标在下一行中闪烁,而无法编写任何内容。

(define (p) (p))
(p)
Run Code Online (Sandbox Code Playgroud)

我不知道对这个过程有什么期望,因为我自己定义了它。

Ósc*_*pez 5

p是没有参数的过程。它的身体是(p)。在Scheme中,我们通过将过程及其参数括在方括号中来调用过程。鉴于p没有参数,(p)只需调用即可p。哪个叫p。哪个电话p...等等。那怎么办呢?无限循环!仅此而已。