Frege導入

Frege導入

FregeはJVM上で動くHaskellライクな文法の言語

1. jarのDL

ここからfregeXXX.jarを落とす。
DLしたfregeXXX.jarは,どこか特定の場所に置いておく(今回は ~/my/modules/ に置いた)

2. 初期化準備

FregeのGitHubの説明を読むとbuildディレクトリとかfrege.jarへのシンボリックリンクとか必要そうなので、それらを作るシェルスクリプトを作る。

#!/bin/bash

# frege-init というファイル名にでもしておく

if [ ! -e "build" ]; then
  # javaへ変換したファイルを格納するディレクトリは"build"としておく
  mkdir "build"
fi

if [ ! -L "frege.jar" ]; then
  # (*) DLしたfregeXXX.jarは, ~/my/modules/ 直下に置いたとする
  ln -s ~/my/modules/fregeXXX.jar frege.jar
fi

3. vim拡張

vimシンタックスこれを使う
インストールにはNeoBundleを使うと楽(誰かの記事を参考にして入れるといいと思うよ)

" .vimrcに以下を追加すると
" C-t c でコンパイル
" C-t p で実行となる
nnoremap [Exec] <Nop>
nmap <C-t> [Exec]
map <silent> [Exec]c :!java -Xss1m -jar frege.jar -d build %<CR>
map <silent> [Exec]p :!java -Xss1m -cp build:frege.jar %:r<CR>

4. 実行

  • まず、frege-initを実行してディレクトリとシンボリックリンクを作る
  • ファイル名をHello.frとする(module名と合わせておくこと)
module Hello where

greeting friend = "Hello, " ++ friend ++ "!"

main args = do
    println (greeting "World")