scheme - (define (p) (p)) 做什么?

标签 scheme lisp sicp

我正在阅读练习 1.5 中的“计算机程序的结构和解释”第 2 版,我发现了一个组合,我不明白它到底做了什么 (define (p) (p)).

当我调用过程 (p) 时,光标在下一行闪烁,但无法写入任何内容。

(define (p) (p))
(p)

我不知道这个过程会发生什么,因为我自己定义了它。

最佳答案

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

关于scheme - (define (p) (p)) 做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56921314/

相关文章:

java - 递归函数中栈溢出的原因

scheme - 关于Scheme中的引号(')

MIT方案中的异常处理

lambda - 在Scheme中让-over-lambda?

scheme - `#:`在Guile中是什么意思?

scheme - 你如何在这个算法中正确使用点尾表示法?

function - 在 Common Lisp 中将 - 更改为 +

emacs - 如何打破 emacs lisp 中的无限循环? (环境 : emacs)

lisp - getopt 库不会加载

scheme - 如何在scheme中实现put和get过程?