Существует ли макрос для использования символа "λ" как "лямбда" в схеме R5RS?

Существует ли макрос для использования символа "λ" как "лямбда" в схеме R5RS? Отсюда В Гамбите "схема-r5rs" я попробовал:

(define-syntax λ
  (syntax-rules ()
    ((_ . more) (lambda . more))))

Но я продолжаю получать Ill-formed expression ошибка.

1 ответ

Решение

Вы, кажется, ищете макрос для чтения, но я не думаю, что он стандартизирован в Scheme.

Это работает:

# pu@pumbair: ~  cat test2.scm
(define-syntax λ
    (syntax-rules ()
       ((_ param body ...) (lambda param body ...))))
(display ((λ (x y) (+ x y)) 1 2)) (newline)
(display ((λ () 1))) (newline)
(display ((λ (a . b) b) 'a 'b 'c)) (newline)

# pu@pumbair: ~  gsi -:s test2.scm
3
1
(b c)
Другие вопросы по тегам