Haskellから.NET Frameworkを呼べるそうなので、
System.Numerics.Complexで複素数を計算させてみた。
今回はF#を使ったが、C#でもできるらしい。
(あまり長所は引き出せていない)
F#のインラインでは、($x:double)
のようにして
Haskellの値を渡せる。
インラインブロックの返り型は明示する。
今のclr-inlineパッケージの実装では、 配列やレコードなど複雑なデータはまだやりとりできないらしい。 プリミティブ型以外は、CLRオブジェクトという形でしかやりとりできず、 Haskellからすればブラックボックスである。 今回は、そのブラックボックスから 複数回に分けて一個ずつプリミティブを取り出した。
また、ドキュメントにはopen
宣言が使えると書いているが、
なぜかダメだった。
関数も渡せそうだが、まだよくわからない。
Haskellから.NETを使うとすれば、GUIが便利そうだが、
イベントハンドラをどうすればよいのか…。
必要ならまた掘ってみる。