что не так с этим макросом определения синтаксиса в схеме?

Я работаю через SICP и хотел попробовать хитростью некоторые примеры. Я пробую примеры потоков и хотел реализовать cons-stream, которую я получил из этого вопроса StackOverflow . Однако, когда я ввожу это в хитрость, я получаю:

guile> (define-syntax cons-stream
  (syntax-rules ()
  [(cons-stream x y) (cons x (delay y))]))
ERROR: invalid syntax ()
ABORT: (misc-error)

Я понятия не имею, что с этим не так - я пробовал заменить () на '(), удаляя [], но он по-прежнему не работает, хотя кажется действительным R5RS . В настоящее время я использую хитрость 1.8.7, я не вижу пакет для v2.0.1, который упоминается в документах GNU , может быть, поэтому он у меня не работает?

5
задан Community 23 May 2017 в 11:45
поделиться