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

I'm baffled why the creators of Egison seem to think pattern matching is so significant for a Lisp. Common Lisp has a variety of pattern matching libraries. Clojure has a pattern matcher as well. Is there something radically better about Egison that I am missing?


I'm curious too. From the website[0] it looks like Egison was designed to do pattern matching. The whole language is built around it. This way Egison can do more complicated kinds of pattern matching such as matching patterns against graphs or other complicated data structures. I don't see why any of these features could not be added to an existing Lisp. OTOH, it might not be about adding more features, it might be about doing it efficiently. If that is the case creating a new language is almost a requirement.

[0] http://www.egison.org/faq.html


You could probably extend Racket's pattern matching to do the same stuff. It can already match against structurs you define yourself, but I don't think it can do things like "match anything with this pattern in this recursive data structure" unless "recursive data structure" is a list, and even then I don't think it will do any kind of complete search of the list other than the top-level elements (not sure though).


There's a difference between having pattern matching capabilities and the entire language being built on pattern matching. I have no idea if pattern matching is as fundamental in Egison as it is in e.g. Erlang, but I know for myself and some other people I respect, first-class, built-in pattern matching is a huge draw to a language.


It's a little strange because pattern matching isn't that important in Haskell either. It's a syntactic convenience.

We decided composable functions (lenses) were better.


That's not true and you know it Allen. Both strategies are valuable.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: