LoginSignup
5
4

More than 5 years have passed since last update.

F# を ubuntu/mono と Visual Studio Code で始めるメモ

Posted at

概要

  • F# で遊びたい。
  • ubuntu で遊びたい。
  • Visual Studio Code で遊びたい。
  • cmake で遊びたい。

この様な場合の環境構築についてメモを残したい。

環境構築

ubuntu

適当に用意して下さい。 16.04 を入れた事にして話を進めます。

mono + fsharp + nuget

sudo apt-get install mono-complete fsharp nuget

この段階で fsharpc (コンパイラー)、 fsharpi(インタープリター)、 mono( .net な .exe の JIT なコンパイラー)、 nuget( .net なパッケージマネージャー) が使用可能になる。

vscode + Ionide

  1. Visual Studio Code の .deb パッケージを拾って install
  2. Ionide を vscode から install

FAKE, Paket

nuget を使い、手作業で FAKE と Paket もシステムに用意する。

sudo su -
cd /opt
nuget FAKE
ln -s FAKE.4.50.0 FAKE
nuget Paket
ln -s Paket.3.35.1 Paket
cd /usr/local/bin
echo -e '#!/bin/sh\n/opt/FAKE/tools/FAKE.exe $@' > FAKE
chmod +x FAKE
echo -e '#!/bin/sh\n/opt/Paket/tools/paket.exe $@' > paket
chmod +x paket
ln -s FAKE FAKE.exe
ln -s paket paket.exe

これでシステムに FAKE と Paket を導入し、 FAKE (または FAKE.exe )、 paket (または paket.exe ) で何時でも使用可能になる。

  • Notes:
    • この記事を読むタイミングによっては FAKE, Paket の導入されるバージョンは異なる可能性がある。 ln -s で作成する symlink を貼る際には適当に置き換える。
    • /usr/local/bin に symlink ではなくシェルスクリプトを用意する方法はそれぞれの .exe が依存する .dll の都合を簡単に解決できるためそのようにした。
    • これらをシステムへ用意する事が嫌ならプロジェクト毎に必要に応じて用意すれば良い。
    • システムへ用意する場合も手作業での方法は様々な方法があるので必ずしもこの例と同様に行う必要は無い。

使い方

後は使うだけ。適当にプロジェクトを作ってにゃんにゃんしましょう。

プロジェクトのディレクトリーを準備し、 vscode を起動

mkdir -p ~/tmp/hoge
cd ~/tmp/hoge
git init
code .
  • Note: こうした作業も vscode で処理したい、あるいはそもそも git を使わないなどはお好みでどうぞ。

vscode の Ionode プラグインでプロジェクトの雛形を用意

CTRL + P から:

> F#: New Project

image

今回はとりあえず console で作る:

console

image

プロジェクト単位の場所や名称を続けて聞かれるので入力して進める。今回は "hoge" プロジェクトを作成してみました。必要なファイルなど自動的に用意してくれます:

image

自動的に用意された hoge.fs:

image

ビルド

sh build.sh

image

実行

mono build/hoge.exe hello

image

Note: chmod +x すれば mono を明示的に経由しなくても build/hoge.exe hello の様にも実行可能になる。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4