Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Correct me if I'm wrong, but you seem to be saying "many interesting features can be implemented in a Lisp language with a macro, therefore Lisp programmers don't need to wait for a new release of their programming language when they want these features".

That is correct. However, macros have to translate to something. From time to time you need an upgraded something for some macros to be feasible.

E.g. it's hard to "macro your way" into having first-class continuations, if they aren't in the substrate.

That is to say, without the macro treating all of its arguments as a self-contained language.

You usually want the code which is in the macro forms to smoothly interoperate with outside code, such as make lexical references to surrounding bindings.

This is the fuzzy limit. Macros have to write stuff in some language, which is no longer macro-expandable. That language has to be reasonably expressive in its semantics for what the macros want to do.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: