Template
Haskell
Template Haskellは、コンパイル時に型安全にメタプログラミングを行うための機能です。プログラムによってHaskellの構文木を生成することで、外部ファイルの読み込みをコンパイル時に行ったり、独自の文法を持ったEDSLを定義することを可能にしています。
...
Template Haskell でいい感じに時間の長さを書けるライブラリ duration を作った
Template Haskell を使って,時間の長さをいい感じに(人間が読みやすい形で)記述できるライブラリを作った.
...
TemplateHaskellでコード中にJSONを埋め込んだりコンパイル時にファイルから型安全に読み込んだりする
前回よりはもう少し実用的な例を.Template Haskell を使って,Haskell のコード中に JSON をそのまま埋め込むことができるようにする.また,あらかじめ用意しておいた JSON ファイルをコンパイル時に読み込み,指定したデータ型の値にする.
...
Template Haskell でコンパイル時 FizzBuzz
数ヶ月前に Twitter で,コンパイル時に FizzBuzz を計算して,実行時には計算された文字列を出力をするだけ,というコンパイル時 FizzBuzz を何かの言語でやっているのを見かけた.元ネタは江添さんがC++で書いたものらしい.インスピレーションを受けて,Haskell で書いてはみたが,簡単すぎて全然おもしろくなくなってしまった.