#:g1: Egison Workshop 2018に参加してきました!

Posted 2018-11-25 08:33:06 GMT

2018-11-23の祝日に開催されたEgison Workshop 2018に参加してきました。

Egisonの現状と今後の展望 - 江木聡志 (楽天技術研究所)

まずは、Egison開発の歴史についての発表でした。
開発動機に始まり現在注力している数式処理機能、テンソルの添字記法等まで解説がありました。
EgisonはあくまでProof of conceptとのことで、今後Haskellへの組み込み機能としても展開していったりするようです。

先日開催されたML Day #2でのEgisonの発表資料

Egison入門+論文紹介 - 西脇友一 (東京大学)

Egisonの入門解説と、来たる12月に開催されるAPLAS 2018で発表予定Non-linear Pattern Matching with Backtracking for Non-free Data Types の解説でした。
まずは、Egisonに慣れてもらうということで、Egisonのパターンマッチの解説が大目で、論文の内容はざっと、という感じでした。

Egisonパターンマッチのアルゴリズムとマッチャー定義 - 江木聡志 (楽天技術研究所)

Egisonのマッチャーのアルゴリズム解説に始まり、無限の大きさの探索空間に対して適切にマッチさせるための工夫のについて解説されました。

こちらも先日開催されたML Day #2でのEgisonの発表資料に詳しいです。

Egisonプログラミングコンテスト

出題をEgisonで解くという内容でした。

member?reverse、というリスト処理では初等的な内容でしたが、Egison流の書法に慣れていない参加者が大半だったため意外と苦戦(私も)しているようでした。

問題集を眺めると、「ポーカーの役判定」までありましたが、そこまでは辿り着かず。
ちゃんと予習していけば良かった……。

Egisonの型システムとその型推論器の実装 - 河田旺 (京都大学)

Egisonに型推論器etcを実装したTyped Egisonを開発している中でのあれこれについてが解説されました。

新機能で知るEgison - 郡茉友子 (東京大学)

テンソルの添字記法に代表される数式処理用の記法を実装するにあたってのあれこれ、EgisonをJupyterで使うためのegison_kernelの紹介、S式がつらいということで、EgisonのHaskell風の構文拡張の紹介でした。

Haskell風のシンタックスについては、egison 4.0に向けての計画の一つなのかもしれませんが、発表内容のものと同一のものなのか、それとは独立の実装なのかメモするのを忘れてしまいました。

現在、対話的に使った際のエラー処理は手厚くないとのことで、新構文で記述→ファイルを読み込み、というフローで使ってみて欲しい、とのことでした。

Lispをやっていて、S式アレルギーの人が一定数いる(大多数)のは十二分に把握しているので、EgisonがS式を採用した理由とメリットについて質問してみましたが、江木さんより、別段にS式に対するこだわりはないという回答でした。
それをうけて私が「S式に対する熱い思いがあるのかと思いました」と発言したところで妙に会場のウケをとってしまい、もしかしたら、Haskell風の構文について質問/紹介するタイミングをつぶしてしまったかもしれません(すいません)

Egisonで微分幾何 - 江木聡志 (楽天技術研究所)

こちらも先日開催されたML Day #2でのEgisonの発表資料に詳しいという感じでした。

懇親会

希望者で懇親会が開催されましたが、参加者間で濃い議論が行なわれていたようです。
私はLisp/S式推しで喋っていましたが、ちょっとウザかったかもしれません(正直すいません)

まとめ

S式構文、パターンマッチ、数式処理、と揃ったので、勝手にREDUCEMACSYMA/Maximaの系譜に続くEgisonキタコレと思ってしまったのですが、主軸はそこではなく、パターンマッチの可能性と記法を追求する途上でたまたまS式、ということのようです。
……ついでにおまけで良いからS式の可能性も追求して欲しい!

全般的にEgison Workshop 2018は、色々な要素のバランスが良く楽しいワークショップでした。

また、参加者にはもれなくEgison Tシャツが配布されました。
Egison Tシャツ欲しかったのでうれしい!

PAP_0016

次回のワークショップも期待しています。


HTML generated by 3bmd in LispWorks 7.0.0

comments powered by Disqus