可以用 Scheme 编写一个宏(define-syntax
例如,使用 ),它将采用如下表达式:
(op a b c d e f g h i j)
并将这样的表达式作为输出?
(op (op (op (op (op (op (op (op (op a b) c) d) e) f) g) h) i) j)
当然,对于任意长度。给定这样的模板,我想不出办法:
(define-syntax op
(syntax-rules ()
[(_) 'base-case]
[(v1 v2 ...) 'nested-case??]))