2017-01-01から1年間の記事一覧
この記事では GHC 8.0.1 を用いています. STG言語 STG(Spinless Tagless G-machine)とは,遅延評価で高階関数をサポートする関数型言語のための抽象機械である. STG(Shared Term Graph*1)言語はSTG機械のための言語で,GHCでは Haskellソース → Core言…
Haskell Advent Calendar 2017 3日目の記事です. Haskellの型推論器を実装し,型システムへの理解を深める.GHC拡張には型に関するものも多いが,今回は触れず標準のHaskellに従う. Hindley-Milner 型推論 シンプルなλ式に対する多相型推論器を考える.
前回は基本的なデータ型を定義し,テトリスのフィールドを表示させた. 入力 キー入力によって動作が変わるようにしたい. 一旦テトリスを離れる. newtype Input = Get Char inputEvent :: IO (Event Input) echo :: Event Input -> Event Output echo i = …
FRP(Functional Reactive Programming)というスタイルがある.入力から出力を得る(あらゆる)プログラムを関数風に表現する手法らしい.遅延ストリームは純粋関数型言語にぴったりだと感じるが,あまり流行っていないような気がする.HaskellではFRPのラ…
ゆるくやっていこうと思います.