2011年12月14日水曜日

Nimrod is expressive


全国の Nimrod ファンのみなさんこんにちは。
Nimrod Advent Calendar の 14日目を担当している、@takano32 a.k.a. TAKANO Mitsuhiro です。


今回はNimrodは効率的 - Prologueの続きとして、Nimrodの二番目の特徴としてあげられている `Expressive' についての文章を翻訳してみます。

Nimrodはとても自由に表現できます

  • Nimrodのコンパイラ、および標準ライブラリはすべてNimrod自身で記述されています。
  • 組み込みでさまざまなデータ型をもっています。たとえば、文字列やセット、シーケンスなどのデータ型があります。
  • 近代的な型システムも搭載しています。ローカル副作用型、タプル型、多相型、ジェネリックス型などがあります。
  • ユーザは演算子を定義することもできます。ユーザが定義した新しい演算子によって組み込みの演算子を再定義したコードよりも読みやすくなる場合も多々あります。たとえば、 =~ の演算子は re モジュール(正規表現モジュール)のなかで定義されています。
  • 強力なマクロ機能も搭載しており、これを使えばコンパイルするときに抽象構文木を書き換えることも可能です。