The Egison Programming Language

- Express Intuition Directly with Essentially New Syntax -

Egison is a programming language that realizes non-linear pattern-matching against non-free data types.
We can directly represent pattern-matching against a wide range of data types such as lists, multisets, sets, trees and graphs.
Egison makes programming dramatically simple!


Egison proposes a new paradigm pattern-matching-oriented. The combination of all of the following features enables intuitive powerful pattern-matching.

  • Non-linear patterns
  • Pattern-matching with multiple results
  • Modularization of the way of pattern-matching
  • Pattern-matching with lexical scoping

Concept of Egison Pattern-Matching (5 mins)

Computer Algebra System

Egison allows users to describe tensor index notation and differential forms in programs. Egison proposed two types of parameters scalar and tensor parameters for that.

When a tensor is provided to a scalar parameter, the function is applied to each component of the tensor. When a tensor is provided to a tensor parameter, the function treats the tensor argument as a whole.

Tensor Paper on

Online Demonstrations

Please try Egison's original features.


Mac OS X Linux Windows

Egison Cheat Sheet

Please refer this cheat sheet when you write Egison programs.


We aim at intuitive representation of algorithms and formalization of human recognitions.
We believe this is the shortest way to the artificial intelligence.


Developed and maintained on GitHub by the community. License is MIT.


Egison is written in Haskell and being distributed as a Hackage package.
Egison inherits a lot of things from Haskell.

Related Projects

Extending other languages to access Egison pattern-matching!


We have a mailing list!
Egison on Twitter, Google+, Facebook, GitHub, Rosseta Code, Hacker News, and Reddit. Please check them!

This website in other langauge: English, 日本語