Czy makro być napisane na schemacie (z define-syntax
, na przykład), które odbędzie wyrażenia tak:Schemat Makro do wyrażenia lęgowych
(op a b c d e f g h i j)
i dają wyrażeń takich jak to jako wyjście?
(op (op (op (op (op (op (op (op (op a b) c) d) e) f) g) h) i) j)
Oczywiście dla dowolnych długości. Nie mogę myśleć o sposób, aby to zrobić, biorąc pod uwagę niektóre szablon tak:
(define-syntax op
(syntax-rules()
[(_) 'base-case]
[(v1 v2 ...) 'nested-case??]))
Jestem ciekawy. Czy to tylko kwestia teoretycznych zainteresowań, czy masz ciekawy przypadek użycia? Ogólnie rzecz biorąc, taki rodzaj owijania zostałby osiągnięty przez funkcję foldLeft. – namin
hmm, dobry punkt. najczęściej o to pytałem, ponieważ nie myślałem o twojej drodze = P. nie zdawałem sobie sprawy, że to jest dokładnie to, co robi foldl. – Claudiu