Egison Creator's Blog

The 3 Exciting Moments Developing Egison

Aug 26 2014

I've experienced the 3 exciting moments developing the Egison programming language. Today, I'd like to write about them.

The First Moment - Pattern Matching against Multisets

The first moment is when I succeeded in running the program that determines poker hands.

I thought the lack of intuitive representation to express pattern-matching against non-free data types such as multisets and sets is the biggest hole of the existing programming languages. To fill this hole, I've started the design and development of Egison.

When I succeeded in running the following code, I really felt that I achieved historical work! It took a whole year to design syntax and mechanism to express and execute the following code.

The Second Moment - Pattern-Matching with Infinite Results

The second moment is when I succeeded in running the program that enumerates all twin primes with pattern-matching against the infinite prime numbers list.

Do you think the following code is beautiful? We had needed some new ideas to run the following code.

The Third Moment - Modularization of Patterns

The third moment is when I succeeded in running the program that determines whether a mahjong hand is finished or not.

Modularization of patterns keeping lexical scoping was really difficult.
When I got an idea of pattern-functions that only take patterns and return a pattern and succeeded in designing the pattern modularization mechanism, I really felt I've achieved my second historical work.


Creating a new programming language with new syntax that simplifies programs essentially is one of the most interesting work in Computer Science.

I created Egison to create AI that automatically build mathematical theories and generate programs.
The next exciting moment will be the moment I achieve this work.

This website in other langauge: English, 日本語