Sunday, January 16, 2022

Pending Language Changes

 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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