claustrophobia

一般λがなんか書くとか

プログラムの停止性とRanking関数

大学・大学院時代の研究テーマは、「プログラムの停止性の自動検証」 ー つまり任意の入力に対しプログラムが停止するかを自動で検証する手法についてだったのですが、プログラムの停止性の特徴付けとして有名なものにRanking関数(Ranking function)がありま…

Haskellのレコード更新構文を詳しく

スタック・オーバーフローにてText.Parser.Token.StyleのemptyIdentsの使い方について haskell - Text.Parser.Token.StyleのemptyIdentsの使い方について - スタック・オーバーフローといった質問をしたところ、このような回答を頂き、レコード更新構文につ…

Egisonで国士無双の判定(及び「速い」Egisonコードの書き方について少し)

RubyKaigiの実況TL (Egison at RubyKaigi 2014 - Togetterまとめ)にて、 Egisonで麻雀の役判定する話になったとき「国士無双は?」みたいな声を2、3見掛けたので、今更書いてみる。 ;; tileの定義は公式のサンプルコードと同じ。 ;; 么九牌の判定 (define …

Haskellの多相関数と自然変換(というか射の族)について

(Kan拡張のとこ以外)読み終えた。随伴がモナドを伴う、というのは知ってたけど具体的にHaskellコードに落とせるというのは面白い。 / Haskellと随伴 by @myuon_myon on @Qiita http://t.co/AiN2UsRJVX— xenophobia (@xenophobia__) 2014, 12月 5そんなこと…

【随時追記予定】読書メモ:関数プログラミング 珠玉のアルゴリズムデザイン

「関数プログラミング 珠玉のアルゴリズムデザイン」を買いました。「関数プログラミング 珠玉のアルゴリズムデザイン」買った。二章まで読んだけど読み応えあってよい感じ。 pic.twitter.com/tGSm0ceW0E— xenophobia (@xenophobia__) 2014, 11月 14読みなが…

Egisonポーカー再考

Egisonコードの例としてよく紹介される(?)例としてポーカーの役判定があります。 http://www.egison.org/demonstrations/poker-hands.html コレクションをMultisetとして扱うことにより手札の順序を考慮しなくてよい non-linear patternを扱える(value pa…

Type Level Ifについて

前記事 http://xenophobia.hatenablog.com/entry/2014/05/07/004251 書いてるときにふと、型レベルのIf使ったほうがいいのかなと一瞬思ったりしました。 singletonsパッケージのData.Singletons.Types(https://hackage.haskell.org/package/singletons-0.10.…

型レベルFizzBuzz(及び、type familyにおけるガードの書き方)

型レベルFizzBuzzどっかで見た気がするが、今書けるかというと絶対無理 — xenophobia (@xenophobia__) 2014, 5月 2 ↑みたいなこと呟いたら「そんな難しいか?」という意見が見受けられ、言われてみれば確かにそんな言うほど難しくないのでは、と思い書いてみ…

OchaCamlに触ってみた。

PPL2014( http://www.fos.kuis.kyoto-u.ac.jp/ppl2014/ )に参加して来ました。 去年に引続きの参加(但し去年は発表なしで見に行っただけ)だったのですが、去年も今年も(主にお茶女勢による)限定継続の発表を聞いては「限定継続ってなんだっけ」と思っ…

Egisonプログラミング実例研究: pattern functionとmatcherの活用例

これは Egison Advent Calendar 2013 2日目の記事です。 「パターンマッチ指向プログラミング」を謳うEgisonでプログラミングすることにおいては当然「パターンをどのように記述するか」ということが最重要課題になってきます。 関数型プログラミングにおい…

Egisonのmatcherの定義(基本編)

第1回 Egison Dev Meeting(http://egison.pira.jp/workshops/1-dev.html)に行ってきました。 Egison自体まだまだ色々と発展途上の言語なので、「この仕様はどうなのか」「ここはこの書き方でいいのか」「これからの展望は」などEgisonの今後に関する多くの意…