Scheme 如何在MIT方案中获得我的函数定义?

Scheme 如何在MIT方案中获得我的函数定义?,scheme,mit-scheme,Scheme,Mit Scheme,在JavaScript中,我可以检索函数的“源代码”定义,例如: ​function alert_Hi() { alert("Hi"); } alert(alert_Hi); 将返回我键入的内容 在麻省理工学院的计划中,我如何做到这一点 我记得看到过一些返回#composite procedure的东西,但我真正想要的是“源代码”。JavaScript是完全解释的,所以即使在定义了完整的函数定义之后,它仍然有完整的函数定义。方案实际上没有得到充分解释;它将函数(我认为还有一些其他结构

在JavaScript中,我可以检索函数的“源代码”定义,例如:

​function alert_Hi() {
    alert("Hi");
}

alert(alert_Hi);
将返回我键入的内容

在麻省理工学院的计划中,我如何做到这一点


我记得看到过一些返回
#composite procedure
的东西,但我真正想要的是“源代码”。

JavaScript是完全解释的,所以即使在定义了完整的函数定义之后,它仍然有完整的函数定义。方案实际上没有得到充分解释;它将函数(我认为还有一些其他结构)编译成一种不可读的表示形式,并丢弃初始代码

您可能会使用一些宏技巧让它在运行时存储函数的初始文本表示,但我倾向于认为这会带来更多麻烦

如果您不介意我问一下,为什么在运行时需要定义函数的文本表示?

您可以试试pp

(define (display-hi) (display "Hi"))
(pp display-hi) =>
(named-lambda (display-hi)
  (display "Hi"))

因为我很懒,我想说
(display function myFunction)
而不是将编辑器向后滚动:p