ipython
python shell有一个很棒的功能,你可以输入:
FOO ??
并查看函数foo
的文本。
计划(特别是麻省理工学院计划)是否有类似的内容?
我希望能够说出
(define(foo x)(* x x))
以后查看(甚至操作)列表(* x x)
。
有办法做到这一点吗?
答案 0 :(得分:1)
在我知道的任何方案中,默认情况下都不是。你可以做的是定义一个宏,它执行“定义”所做的事情,另外还将函数的主体存储在哈希表或alist中。当然,这只适用于您控制的代码。
答案 1 :(得分:0)
没有可靠,便携的方法来做到这一点。
答案 2 :(得分:0)
Scheme函数的一般结构是(define (<name> <arg1> <arg2> ... ) <expr1> <expr2> ... <exprn>)
。扩展Mark Probst的建议,您可以定义一个宏来定义函数的引用版本,然后您可以应用cddr
来获取函数表达式的列表。