IfSharp (notebook)サイコオオオオオオオオオオオオオオオオオオオオオオオオオ

はじめに

IPython notebook、昔々触ったときは「コンセプトは良いけどまだまだですナ。ハハハ」みたいな感じで流してたのだが、今ここでちゃんと触ってみようとおもったけれども、最近scikit-learnを必要に応じて触るくらいでpythonあまりいじってないし、俺にはF#あるし、iPython NotebookのF#版であるifSharp使った方が楽しそうだったので、未来の自分が別PCに導入することも考えてメモしておく。なんだかよくわからないけど、64bitマシンじゃないとだめだってさ。
とりあえず、Visual Studioが入っていないお友達は

からVisual Studio Community版いれとけ。

ifSharpの公式

ifSharpの公式は以下。ifSharp NotebookじゃなくてifSharpが正式名称っぽい。
Documentation

Github

インストール&簡単な例

公式(Github)のが間違ってる気がするのでメモる。上記のサイトで言う「Automatic Installation」でいこう、マニュアルインストールはめんどい。まずPython周りは大人しくAnacondaいれておく。

次いで、以下から最新のifSharpのsetup.exeを落としてYESYESしてインストール。

これでインストール自体は完了で、あとはインストールしたifsharp.exeを起動する。デスクトップにショートカット作ってればそれダブルクリックでOKだ。そうすると以下のようにiPythonが立ち上がる。そして、下図の赤丸で囲ってある「New NoteBook」を押下。

そうするとIP[y]: NoteBookのIPの部分がIFへと変わり、ifSharpとしてNotebookを作成することができる。あとはチャッチャとF#のコードを書けばいい。

出来上がったipynbファイルをGithubにアップすれば、iPython Notebook同様、nbviewerで見ることができる。

そもそも、iPython Notebookの使い方がよくわかってないので、そちらも調べる必要があるな・・・

その他特筆事項

  • インタラクティブ上でも型推論・補完が効くので、より安全にNoteBookを作成いただけます
  • ifsharp.exeのインストールフォルダにInclude.fsxってのがあって、こいつでデフォルトでロードするライブラリ・名前空間を調整できる
  • #N "hogehoge"のようにNディレクティブを使って、パッケージをNugetから動的にインストールできる
  • 数々のオブジェクト描画用にDisplay関数が用意されている
  • Util関数群もあって、たとえばUtil.Math関数は引数文字列を数式として*1で表示してくれる

*1:Math Jaxか?