Просто оцените первый символ (Цыпленок Схема) - PullRequest
0 голосов
/ 07 февраля 2019

Как я могу оценить s-выражение только по первому члену?

(define (fn x y) (print x) (print y))
(eval '(fn a b))

Я пытаюсь оценить что-то подобное по большему выражению, но переводчик жалуется, что a и b переменных не существует ( несвязанная переменная a ).

Могу ли я что-то сделать, чтобы оставить символы такими, как они есть?

Я пытался найти информациюоб этом, но я нигде не могу его найти.

1 Ответ

0 голосов
/ 07 февраля 2019

Как насчет следующего?

(let ((expr '(fn a b)))
  (cons (eval (car expr)) (cdr expr)))

Но учтите, что если вам приходится полагаться на eval, вы почти наверняка делаете что-то не так.

...