найти свободные переменные в лямбда-выражении

Кто-нибудь знает, как я могу определить свободные переменные в лямбда-выражении? Свободные переменные — это переменные, не являющиеся частью лямбда-параметров.

Мой текущий метод (, который ни к чему не приводит ), состоит в том, чтобы просто использовать car и cdr для прохода по выражению. Моя основная проблема заключается в том, чтобы выяснить, является ли значение переменной или одним из примитивов схемы. Есть ли способ проверить, оценивает ли что-то одну из встроенных в схему -функций? Например:

(is-scheme-primitive? 'and)
;Value: #t

Я использую схему MIT.

13
задан Greg Hewgill 15 September 2012 в 03:38
поделиться