如何在MIT Scheme中获取我的函数定义?

时间:2012-08-26 11:06:14

标签: scheme mit-scheme

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

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

alert(alert_Hi);

将完全返回我输入的内容。 http://jsfiddle.net/DuCqJ/

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

我记得看到的东西会返回#compound-procedure或其他东西,但我真正想要的是“源代码”。

2 个答案:

答案 0 :(得分:7)

你可以试试pp

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

MIT-Scheme debugging aids

答案 1 :(得分:4)

JavaScript是完全解释的,所以即使在你定义它们之后它也有完整的函数定义。方案实际上并未完全解释;它将函数(以及一些其他结构,我认为)编译成不可读的表示形式并抛弃初始代码。

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

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