marcioAlmada/yay

Recursive Macros

marcioAlmada opened this issue · 1 comments

Since #2, macros became non recursive by default. But It's still desirable to opt in for recursive macros in some edge cases. A ·recursion tag could be used to enable this behavior, as in:

macro ·recursion { ( T_STRING·A ···rest ) } >> { T_STRING·A( ···rest ) }

(X (Y 1 2 3))

Expands to:

X( Y( 1 2 3 ) )

Whenever this flag is used, it becomes userland responsability to ensure that there is no infinite
recursion going on.