Wafelack/orion

Recursive macro support

thomasvrgn opened this issue · 1 comments

Adding recursive macro support could transform Orion in a powerful language because :

Recursive macros woudln't be dependent on callstack because they would be translated directly in parsing step. I already see a way of implementing that : Tail call optimisation system.

Recursive macros would just transform some recursive code into simple iterative code.

(macro factorial (x) {
  (if (= x 0) (return 1))
  (return (* x (factorial (- x 1))))
})

Regards,
Thomas.

Macros like that in an interpreted programming language wouldn't make that much sense in my opinion, because the preprocesor is actually a kind of interpreter, and macros like that would be actual functions. But I still can try to apply that to the recursive functions.