プログラミング言語 Egison

- 直感をそのまま表現するパターンマッチング -

Egison は1つの定まった標準形を持たないデータに対しても柔軟なパターンマッチが表現可能なプログラミング言語です。
リストや多重集合、集合、ツリー、グラフなどといった幅広いデータ型に対して、パターンマッチが記述できます。
それにより、Egison プログラマは非常にシンプルにプログラムを記述できるようになります。

パターンマッチ指向

Egison はパターンマッチ指向という新たなパラダイムを提唱しています。 以下の4つの機能を同時に実現することにより、強力で直感的なパターンマッチを可能にしています。

  • 非線形パターン
  • 複数の結果を持つパターンマッチング
  • パターンマッチの方法のモジュール化
  • 静的スコープを保つパターンマッチング

Egisonのパターンマッチのコンセプト (5分)

数式処理

Egisonはテンソルの添字記法微分形式をプログラムでもそのまま記述することができます。
スカラー関数テンソル関数という2種類の関数の分類を提唱することにより、これを実現しました。

  • スカラー関数 - 引数がテンソルだった場合、処理を要素ごとにマップする。
  • テンソル関数 - 引数がテンソルだった場合、テンソルをテンソルとしてそのまま処理する。

Egisonによるテンソルの添字記法の導入 (10分)

デモンストレーション

Egison独自の機能を体験してみてください。

BOOTH にて Egison Journal Vol. 1,2 を販売中!

Egisonをインストール

インストールガイド (英語)

Egison チートシート

Egisonプログラムを書く際はこの早見表を参考にしてください。


目標

我々は人間の直感を直接表現できるプログラミング言語を目指しています。
我々はそれが人工知能を実現するための必要条件だと考えています。

オープンソース

Egison は GitHub 上で開発されています。 MIT ライセンスで公開されています。

Haskell

Egison は Haskell により記述されており、Hackage を用いて配布されています。
Egison は Haskell の機能の多くを継承しています。

関連プロジェクト

他の言語から Egison のパターンマッチが使えるように拡張しています。


コミュニティ

Egison にはメーリングリストがあります。
また、 Twitter, Google+, Facebook, GitHub, Rosseta Code, Hacker News, Reddit 上の情報もぜひチェックしてみてください。


This website in other langauge: English, 日本語