While I am kicking and screaming to get the egel compiler accepted by a c++ compiler that supports modules, I have a number of pending language changes that I want to implement.
- Import declarations should take qualified identifiers instead of strings. I've been confronted with modules and been looking at other languages and all of them (Java, Python, Haskell, C++) now default to identifiers instead of strings (file paths) for inclusion of other modules.
I assume in the end people found out that separating the file system from the module system is the way to go. I'll do that too. - Lowercase namespaces. I once decided on uppercase namespaces since I thought that would distract a bit from the uppercase Prolog-like variables Egel has. But I was wrong, they just look ugly.
- Reintroduce the monadic minus. The monadic minus was problematic and is problematic. At some point, I decided that if I cannot solve the problem then I won't, and removed all the code regarding it. And then it turned out during Advent of Code that I better not had.
- Local combinator defintions. I knew it would come to this, but after Advent of Code, I decided that, yes, local combinator definitions introduced with a where are handy and moreover, look pretty.
- Quotation. I am not too interested in all the dynamic things you can do with quoted combinators but I'll implement these anyway.
That should be about it for all language changes I want for a 0.2 release.
No comments:
Post a Comment