【发布时间】:2015-10-01 00:39:36
【问题描述】:
我希望为一个简短的演示实现一些概念验证演示,其中正在运行的代码知道当前正在执行的代码块的散列“值”。例如:
function BBB(a) {
a = 2 * a;
print me.hash; --> "xxxxxxx" (value of BBB-syntax represenation)
return a;
}
function AAA(a, b, c) {
d = BBB(a);
print me.hash; --> "yyyyyyy" (value of AAA-Syntax representation, possibly dependant on value of BBB, but not necessary)
return d;
}
我本能地转向 LISPish 语言,但在 Scheme 上还没有成功。而且我很长时间没有与 Common LISP 保持联系,我怀疑这可能能够做到(提示赞赏)。它不一定要快,或者流行的平台,可以是可用的最学术和最奇怪的平台。这只是一个演示。
有没有人知道一种语言/平台可以开箱即用或几乎不需要修改就可以做到这一点?我更喜欢使用某种解析/树状的东西,而不是实际的源代码。
【问题讨论】:
-
在普通的 Common Lisp 中,一个正在运行的函数并不知道自己。在特定的实现中,应该可以检查堆栈。
标签: functional-programming programming-languages common-lisp metaprogramming