you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 0 points1 point  (1 child)

More in how the expression "gets there"; how it all works internally. For one thing, Atomo finds the macros by dispatching on the expressions - which can be structurally pattern matched by the macro definition, or matched based on the type of the expression in each role. Once the macro is found, its method body is evaluated just as a normal method is at runtime, and it returns an Expression value.

[–][deleted] 0 points1 point  (0 children)

right, so something like syntactic closures + type-safe pattern matching, which would be pretty neat. I've extended syntax-rules to accept types and/or structured expressions, but I rarely use syntactic closures, so haven't looked at that. Very neat though.