您如何在 Scheme 中将“λ”定义为 'lambda' 的别名?

How can you define 'λ' as alias for 'lambda' in Scheme?

我知道我可以像这样创建一个别名: (define first car)(first '(a b c)) => a
但这对某些关键字不起作用,我不能说 (define alias define)(define λ lambda)

但我想做的是将 λ 定义为 lambda 的别名,这样我就可以说:

(define add
  (λ args-list
    (apply + args-list)))

而不是通常的

(define add
  (lambda args-list
    (apply + args-list)))

如果有人知道如何执行此操作或能指出正确的方向,我将不胜感激。我知道这是开箱即用的球拍,但我想知道如何实现它,前提是它是可能的。

您必须使用宏

(define-syntax λ
  (syntax-rules ()
    ((_ args body ...)
     (lambda args body ...))))