無駄と文化

実用的ブログ

Haskell

不動点コンビネータで無名再帰を作る流れをおさらい

どうも、趣味で関数型言語を書いている者です。 長らく関数型言語やってなかったら無名再帰を忘れかけていたので、おさらいがてら不動点コンビネータで無名再帰を作る流れを書き下します。 以下、Haskell の文法で書かれたコードをもとに説明していきます。 …

いろいろなパッケージから提供されている ListT モナド変換子の違いについて調べてみる

この記事は Haskell (その2) Advent Calendar 2017 の10日目の記事です。あけましておめでとうございます。 今回は ListT モナド変換子 について調べたことをまとめます。 hackage で検索をすると ListT と名の付くモナド変換子を提供しているパッケージは4…

Haskell でλ計算のインタプリタを作っていこう ~ その3. プリティプリンタ

引き続き Mogul という名前のλ計算インタプリタを作っていこうと思います。 前回、パーザを書いたのでソースコードから抽象構文木を生成することができるようになりました。さっそく抽象構文木をいじくり回して何かしらの処理を実装したいところですが、今回…

Haskellでλ計算のインタプリタを作っていこう ~ その2. パーザ

引き続き Mogul という名前のλ計算インタプリタを作っていこうと思います。 前回、λ式を表現するデータ型を定義したので、今回はパーザを書きます。ソースコードを読ませて抽象構文木を生成するところまでです。 ソースコード全体は GitHub に置いておきます…

Haskell でλ計算のインタプリタを作っていこう ~ その1. データ型

Haskell ネタです。 先日の記事で宣言したとおり、λ計算のインタプリタを作っていこうと思います。 ソースコード全体は GitHub に置いておきます。 github.com プロジェクト名は Mogul (モーグル) 。 なので作っていくインタプリタの名前も Mogul です。 全…

λ計算のインタプリタを作ろうとしている話

先月、八耐に参加してから 長年個人プロジェクトとして取り組み続けてきた『λ計算インタプリタを作りたい』という欲が再燃しています。 欲が燃えているのは結構なことなので、実際に作ろうと思います。その宣言のための記事です。 作ろうとしているもの λ計…

八耐 in 東京 に参加してきました。

福岡で働いていた頃からの友人である 岩本くんに声を掛けてもらったので 八時間耐久作品制作会(仮) in 東京 に参加してきました。 ふり返りつつレポートしてみます。

optparse-declarative のコードリーディングから型レベルプログラミングを学ぶ

この記事は Haskell Advent Calendar 2016 の9日目の記事です。 とか云ってもう11日ですね、ホントすみません。 8日目は @phi16_ さん、10日目は @bra_cat_ket さん でした。 Haskell を書き始めてはや5年、Monad や Applicative は使いこなしているけど、そ…

九九表のすべてのマスの和

takatoh 様 が同じ問題を Ruby と Scheme で解いてくださいました。許可を得て転記させていたいています。 Ruby 版の簡素さはさすがという感じです。そして、Scheme 版の S式 は慣れないと読めないし分からないのが面白いですね。takatoh 様、本当にありがと…

Haskellで目指せワンライナー! 〜 1行コードでがんばる 〜

これはHaskellアドベントカレンダー2015の(2日遅れの)8日目の記事です。 本当にすみませんでした。 導入 小さな部品(関数)を組み合わせて大きなプログラム(関数)を作り上げる、これこそが関数型の醍醐味かなと思います。 しかもHaskellは標準関数も豊富で、…