Arc Forumnew | comments | leaders | submitlogin
1 point by ms 5907 days ago | link | parent

If I understand this correctly, `(,foo ...) embeds the foo function into the s-expr returned by the macro, IOW the car of the s-expr is the function.

While I find this an interesting approach, one problem I see is that this only works as long as Arc is an interpreter. Embedding foo into the s-expr mixes up runtime values (the function foo) and expand-time values (the s-expr).

In a compiler, you would have one runtime in which foo exists, and another runtime (the expand-time, at a higher "meta level") in which the s-expr exists, and the two runtimes can never meet -- they exist on different levels of the reflective tower.

(I am not entirely sure of this, and in any case it does not apply to Lexicons.)

See http://citeseer.ist.psu.edu/flatt02composable.html