差分
F Sharp
,'''F#'''(えふしゃーぷ)とは、謎である。(読み:えふしゃーぷ、語源:functional)とは、謎である。
最近は一子'''F*'''(えふすたー)をもうけ、子育てに忙しい。
== 名称 ==
その名称からF#を[[FORTRAN]]の[[CLR]]実装だと勘違いしている人が多いが、[[Fortran]]とは一切関係ない<ref>https://github.com/Nobuhisa/FSUG_JP/wiki</ref>。
聖書に相当する書籍は「[[Real-World Functional Programming]]」であることからも「functional」が語源であると思われる。正式なものは知らん。
== ライセンス ==
F#は[[オープンソース]]のもとで公開されており、その[[ライセンス]]には[[Apache License 2.0]]が採用されている。ただし一般的なオープンソースと異なり、リリースバージョンのみ[[オープンソース]]であるという[[コードドロップ]]という手法が採用されている。このため[[言語]]自体の仕様は[[マイクロソフト]]の管理下にあり、各種[[プラットフォーム]]への対応展開は[[オープンソース]]で可能という特殊な形態となっている。
== インストール ==
=== FreeBSD ===
* http://www.microsoft.com/download/en/details.aspx?id=11100
[[zipファイル]]を展開して、好きな[[ディレクトリ]]に[[コピー]]しておく。
<source lang="bash">
$ unzip fsharp.zip -d /opt/
$ cd /opt/FSharp-2.0.0.0/
</source>
[[Mono]]向けインストール用[[シェルスクリプト]]が用意されているので叩く。
この[[スクリプト]]は、[[グローバル・アセンブリ・キャッシュ]]([[GAC]])への登録と、fscおよびfsiコマンドへのパーミッション設定をしてくれるという内容である。
<source lang="bash">
$ wget -O mono.snk http://github.com/mono/mono/raw/master/mcs/class/mono.snk
$ sh install-mono.sh
</source>
起動用の[[シェルスクリプト]]を作っておく。
パスを通しておくのも忘れずに。
<source lang="bash">
$ echo '#!/bin/sh'$'\nexec mono $MONO_OPTIONS "/opt/FSharp-2.0.0.0/bin/fsc.exe" "$@"' > /opt/FSharp-2.0.0.0/bin/fsc
$ echo '#!/bin/sh'$'\nexec mono $MONO_OPTIONS "/opt/FSharp-2.0.0.0/bin/fsi.exe" "$@"' > /opt/FSharp-2.0.0.0/bin/fsi
$ chmod 755 /opt/FSharp-2.0.0.0/bin/fsc
$ chmod 755 /opt/FSharp-2.0.0.0/bin/fsi
</source>
fsiコマンドを起動してみる。
コンソール上で動かす場合は「--gui-」オプションを忘れずに。
<source lang="bash">
$ fsi --gui-
</source>
[[hello, world]]を表示してみる。
なお、「#help;;」でヘルプが見れる。終了は「#quit;;」と打て。
<source lang="fsharp">
> printf "hello, world";;
hello, worldval it : unit = ()
> #quit;;
</source>
{{stub}}
== 使い方 ==
== 関連構文 ==
* [[スライス]]
== 関連コマンド ==
* [[fsharpc]] - [[コンパイラ]]。
* [[fsharpi]] - [[インタプリタ]]。[[スクリプト言語]]として使えるので捗る。
== 関連項目 ==
* [[Phalanger]] - F#の中の人も参戦している[[PHP]]実装。
* [[IronJS]] - F#で書かれた[[JavaScript]]実装。
* [[プログラミング言語]]
== 参考文献 ==
== 外部リンク ==
* [http://www.amazon.co.jp/Real-World-Functional-Programming-Tomas-Petricek/dp/1933988924 Real-World Functional Programming]
{{stub}}
[[category:プログラミング言語]]
[[category:.NET Framework]]