4 ms·
I see, thanks! Is that the only additional capability or is there more?
by Sniffnoy 4y ago
I see, thanks! Is that the only additional capability or is there more?
- rileyphone 4y agoThey have the advantage of making macro writing a good deal simpler, by providing a higher-level control over metaprogramming. The effect is almost like CLOS-style classes in comparison to C++ classes - a more complete metaphor (metaprogramming/OOP) is more difficult to implement and optimize, but makes up for in improved programmability. Of course this is all highly subjective. Perhaps fexpr was just a weird language construct that introduced more problems than it solved. I think it is an unexplored avenue that was brought to light again by Kernel. You really need fexprs to get a true programmable programming language in the sense their are no exceptions. Maybe the cost can become reasonable.
- Sniffnoy 4y agoI mean I'm asking about concrete differences in how they fundamentally work, since I'm not familiar with fexprs in the first place, and (as someone who doesn't use Lisp) not very familiar with macros either. I'm not asking about larger consequences like the sort you describe in this answer.
- rileyphone 4y agoIn that case, I would recommend reading this post. Shutt explains it much better than I can. https://fexpr.blogspot.com/2011/04/fexpr.html https://fexpr.blogspot.com/2011/04/fexpr.html
- Sniffnoy 4y agoThat post doesn't mention macros at all, so it does not seem to contain the macro-vs-fexpr contrast I'm looking for.