【发布时间】:2009-06-05 13:25:14
【问题描述】:
ipython python shell 有一个很棒的功能,您可以输入:
foo??
并查看函数foo的文本。
方案(特别是 MIT 方案)有类似的吗?
我想能够说
(定义(foo x)(* x x))
稍后查看(甚至操作)列表(* x x)。
有没有办法做到这一点?
【问题讨论】:
标签: scheme
ipython python shell 有一个很棒的功能,您可以输入:
foo??
并查看函数foo的文本。
方案(特别是 MIT 方案)有类似的吗?
我想能够说
(定义(foo x)(* x x))
稍后查看(甚至操作)列表(* x x)。
有没有办法做到这一点?
【问题讨论】:
标签: scheme
默认情况下,我知道的任何方案中都没有。您可以做的是定义一个宏来执行“定义”所做的事情,此外还将函数的主体存储在哈希表或 alist 或其他任何内容中。当然,这只适用于您控制的代码。
【讨论】:
没有可靠、便携的方法来做到这一点。
【讨论】:
Scheme 函数的一般结构是(define (<name> <arg1> <arg2> ... ) <expr1> <expr2> ... <exprn>)。扩展 Mark Probst 的建议,您可以定义一个宏来定义函数的引用版本,然后您可以应用 cddr 来获取函数表达式的列表。
【讨论】: