2009-06-05 49 views
2

ipython python shell有一個奇妙的功能,您可以輸入:查找方案中的程序文​​本

foo ??

並參見功能foo的文字。

是否計劃(特別是MIT方案),有這樣的事情嗎?

我希望能夠說

(定義(FOO X)(* X X))

並且在以後查看(甚至上操作)列表(* x x)

有沒有辦法做到這一點?

回答

1

在我知道的任何方案中不默認。你可以做的是定義一個宏來完成「定義」,並將函數的主體存儲在一個散列表或一個alist或其他東西中。當然,這隻適用於您控制的代碼。

+0

mm,我正在考慮做那樣的事情...... 太好了,謝謝! – billc 2009-06-05 17:06:05

0

有沒有可靠的,便攜式的方式來做到這一點。

0

Scheme函數的一般結構是(define (<name> <arg1> <arg2> ...) <expr1> <expr2> ... <exprn>)。擴展Mark Probst的建議,你可以定義一個宏來定義函數的引用版本,然後你可以應用cddr來獲取函數表達式的列表。