просматривая текст процедуры в схеме - PullRequest
2 голосов
/ 05 июня 2009

Python-оболочка ipython имеет замечательную функцию, благодаря которой вы можете набрать:

Foo ??

и см. Текст функции foo.

Имеет ли схема (в частности, схема MIT) что-нибудь подобное?

Я хочу иметь возможность сказать

(определить (foo x) (* x x))

и более поздний просмотр (или даже работа) списка (* x x).

Есть ли способ сделать это?

Ответы [ 3 ]

1 голос
/ 05 июня 2009

Не по умолчанию в любой схеме, которую я знаю. То, что вы можете сделать, это определить макрос, который выполняет то, что делает «define», и, кроме того, сохраняет тело функции в хеш-таблице или в alist, или как угодно. Конечно, это будет работать только с кодом, который вы контролируете.

0 голосов
/ 08 июня 2009

Общая структура функции Scheme: (define (<name> <arg1> <arg2> ... ) <expr1> <expr2> ... <exprn>). Расширяя предложение Марка Пробста, вы можете определить макрос, который определяет версию функции в кавычках, к которой затем можно применить cddr для получения списка выражений функции.

0 голосов
/ 05 июня 2009

Нет надежного, портативного способа сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...