F Sharp

提供: MonoBook
2014年9月1日 (月) 04:59時点における119.72.196.79 (トーク)による版 (→‎FreeBSD)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

F#(読み:えふしゃーぷ、語源:functional)とは、謎である。 最近は一子F*(えふすたー)をもうけ、子育てに忙しい。

名称[編集 | ソースを編集]

その名称からF#をFORTRANCLR実装だと勘違いしている人が多いが、Fortranとは一切関係ない[1]。 聖書に相当する書籍は「Real-World Functional Programming」であることからも「functional」が語源であると思われる。正式なものは知らん。

ライセンス[編集 | ソースを編集]

F#はオープンソースのもとで公開されており、そのライセンスにはApache License 2.0が採用されている。ただし一般的なオープンソースと異なり、リリースバージョンのみオープンソースであるというコードドロップという手法が採用されている。このため言語自体の仕様はマイクロソフトの管理下にあり、各種プラットフォームへの対応展開はオープンソースで可能という特殊な形態となっている。

インストール[編集 | ソースを編集]

FreeBSD[編集 | ソースを編集]

FreeBSDの場合はportsの「lang/fsharp」を入れるのが簡単である。 2014年9月1日時点でのports提供バージョンはF# 3.1.1.25となっている。

現在ではパッケージも用意されている。

$ pkg install fsharp

2012年3月23日時点でのports提供バージョンはF# 1.9.6.16と古い。 最新バージョンのF# 2.0.0.0はMono対応版がマイクロソフトの公式サイトからダウンロードできるので、そちらを使った方がよさそうな感じ。後述するMono全般のインストール方法を使うほうが無難かも。

Mac OS X[編集 | ソースを編集]

Mac OS Xの場合はXamarin Studioインストールするのが簡単である。 なにも考える必要はない。

なお、Xamarin StudioLion以上が必須なのでSnow Leopard以下の人は後述するMono全般のインストール方法を使うしか無い。そもそもアップル信者たるもの、急いで新しいMacアップルストアで買うべきである。それがジョブズの教えである。

Mono全般[編集 | ソースを編集]

下記からF# 2.0.0.0をF#のzipファイルダウンロードする。

zipファイルを展開して、好きなディレクトリコピーしておく。

$ unzip fsharp.zip -d /opt/
$ cd /opt/FSharp-2.0.0.0/

Mono向けインストール用シェルスクリプトが用意されているので叩く。 このスクリプトは、グローバル・アセンブリ・キャッシュGAC)への登録と、fscおよびfsiコマンドへのパーミッション設定をしてくれるという内容である。

$ wget -O mono.snk http://github.com/mono/mono/raw/master/mcs/class/mono.snk
$ sh install-mono.sh

起動用のシェルスクリプトを作っておく。 パスを通しておくのも忘れずに。

$ 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

fsiコマンドを起動してみる。 コンソール上で動かす場合は「--gui-」オプションを忘れずに。

$ fsi --gui-

hello, worldを表示してみる。 なお、「#help;;」でヘルプが見れる。終了は「#quit;;」と打て。

> printf "hello, world";;
hello, worldval it : unit = ()
> #quit;;


使い方[編集 | ソースを編集]

関連構文[編集 | ソースを編集]

関連コマンド[編集 | ソースを編集]

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]

外部リンク[編集 | ソースを編集]