次のような式を取るマクロを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??]))