znaleźć wolne zmienne w wyrażeniu lambda
Czy ktoś wie, jak mogę obliczyć wolne zmienne w wyrażeniu lambda? Wolne zmienne to zmienne, które nie są częścią parametrów lambda.
Moja obecna metoda (która prowadzi mnie nigdzie) polega po prostu na używaniu samochodu i cdr, aby przejść przez wyrażenie. Moim głównym problemem jest ustalenie, czy wartość jest zmienną, czy też jest jednym z prymitywów schematu. Czy istnieje sposób na sprawdzenie, czy coś ocenia jedną z wbudowanych funkcji schematu? Na przykład:
<code>(is-scheme-primitive? 'and) ;Value: #t </code>
Używam schematu MIT.