W.I.S. Laboratory
menu-bar

Nim


Nimでダックタイピングしてみる

「効率的で表現豊かで優雅」なNimでダックタイピングしてみた。
Pythonライクに記述ができ、なおかつ静的型付けで高速に動作するという触れ込みだが、実際はCやC++などの静的型付け言語へ変換した後にコンパイルされるので、トランスパイラという局面が強い。
Objective-CやJavaScriptなど、かなり多くの言語へトランスパイルすることができるので、Nimさえ書ければどこでも動くコードが生成できる・・というのが売りらしい。
「Pythonのような構文で記述できる」という売り文句とは裏腹に、classを持たない言語なので、オブジェクト指向型言語として使おうと思うといろいろと工夫が必要になる。
GoやRustのように構造体と関数を紐づけるための記述法があるというわけでもなく、関数のオーバーロードを使ってデータと処理をプログラマーが紐づけていく。
そしてD言語のように関数の第一引数を関数名の前に置いてメソッドチェーンで書いても良いので、ぱっと見はインスタンスメソッドを呼び出しているように書ける。
このへんはGoやRustと同じような感じだが、GoやRustと比べると構造体と関数を紐づける力が弱いので、やっていることはCに近い。
ただ、柔軟なジェネリクスがあるので、静的ポリモーフィズム(ダックタイピング)が書ける数少ない静的型付け言語のひとつだ。


[ 戻る ]
saluteweb