#scheme #alias
#схема #псевдоним
Вопрос:
Я знаю, что могу создать псевдоним примерно так: (define first car)
т. Е. (first '(a b c))
=gt; a
Но это не сработает для определенных ключевых слов, я не могу сказать (define alias define)
или (define λ lambda)
Но то, что я хотел бы сделать, это определить λ
как псевдоним lambda
, чтобы я мог сказать:
(define add (λ args-list (apply args-list)))
вместо обычного
(define add (lambda args-list (apply args-list)))
Буду признателен, если кто-нибудь знает, как это сделать, или сможет указать мне правильное направление. Я знаю, что это не по правилам с Ракеткой, но я хочу знать, как это можно реализовать, при условии, что это возможно.
Ответ №1:
Вы должны использовать макрос
(define-syntax λ (syntax-rules () ((_ args body ...) (lambda args body ...))))
Комментарии:
1. Это сработало, спасибо!