Visual StudioもMono Developも入れたけど、Vimね、Vim。「Vim」って何回言っても好いですよね。Vim。あーヰ゛ム。
WindowsだとF#のcompilerがFsc.exeの名で入りますが、此れはScalaにもfscと云ふ実行fileが有って、此れとぶつかります。Mac等に合わせてfsharpcの名で呼び出せるやうにします。
@echo off rem fsharpc.bat "C:\Program Files (x86)\Microsoft SDKs\F#\3.1\Framework\v4.0\Fsc" %*
C#用の設定を真似てF#用の設定を書きます。
cf. 漂流日記 — quickrun.vim の C# 用設定を作った http://sgur.tumblr.com/post/20964378308/quickrun-vim-c
NeoBundleLazy 'kongo2002/fsharp-vim', { \ 'autoload': { \ 'filetypes': ['fsharp'] \ } \ } NeoBundle 'thinca/vim-quickrun' if !exists('g:quickrun_config') let g:quickrun_config = {} endif let g:quickrun_config.fsharp = { \ 'command': 'fsharpc', \ 'runmode': 'simple', \ 'exec': [ \ '%c /nologo --out:"%S:p:r:gs?/?\?.exe" %s:gs?/?\?', \ '"%S:p:r:gs?/?\?.exe" %a', \ ':call delete("%S:p:r.exe")' \ ], \ 'tempfile': '%{tempname()}.fs', \ }
それだけ。
F#の階乗。
module sample // let fact n = // let rec factrec n a = // if n = 0 then // a // else // factrec (n - 1) (n * a) // factrec n 1 // let fact n = // let rec factrec n a = // match n with // |0 -> a // |_ -> factrec (n - 1) (n * a) // factrec n 1 // let fact n = // let rec factrec n a = // n |> function // |0 -> a // |_ -> factrec (n - 1) (n * a) // factrec n 1 let fact n = let rec factrec a = function |0 -> a |n -> factrec (n * a) (n - 1) factrec 1 n printf "%d" (fact 7)