2013-01-01から1ヶ月間の記事一覧

F#でインタープリタ : 配列

F#

配列が使えるようになりました。実装はF#のリストですけど。 https://gist.github.com/4645884/2465fde0e7653fc8051979d7d54c83fd8d60146b 次のスクリプトを解釈させると a = [2, 3, 4] print(a[1]) a[1] = "three" print("a[1]: " + a[1]) b = [["one", 1],…

Doma 1.28.0 をリリース

Doma 1.28.0 をリリースしました。ダウンロードはこちらからどうぞ。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/index.php?Maven2RepoRemote 以前のバージョンから移行するには移行ガイ…

F#でインタープリタ : オブジェクト指向

F#

クラスの定義とインスタンス化ができるようになりました。 https://gist.github.com/4641973/925dbbb67ade2720c99099bf1f0c177aba0ecd20 class Position { x = 0 y = 0 def move(nx, ny) { x = nx y = ny } } class Pos3D extends Position { z = 0 def set(…

F#でインタープリタ : F#の関数や.NETのメソッドを呼び出す

F#

https://gist.github.com/4632243/73184b099d24ebcad956de5c01409224ccf96f9d F#の関数や.NETのメソッドを呼び出せるようにしました。 lengthで文字列の長さを返して、toIntで文字列を数値へ変換。printで出力。 次のコードを実行すると5が返ってきます。 s1…

F#でインタープリタ : クロージャの実装

F#

https://gist.github.com/4578600/687544edff499c54d4e5ea6fd2208244cdce1c1f やっとクロージャが実装できました。 def counter (c) { fun () { c = c + 1 } } c1 = counter(0) c2 = counter(0) c1() c1() c2() c1()上のコードを実行すると3が返ってきます。…

Visual Studioでデバッグ

#F

昨日書いた評価器は、いまいちバグってるなー。静的スコープじゃなくて動的スコープになっているし、環境がグローバルの環境しかない。 デバッグでずいぶん時間を無駄にしました(そしてまだ解決していない)。しかし、そのおかげで、Visual Studioのデバッ…

F#でインタープリタ

F#

半年前くらいにJavaでおもちゃスクリプトを作ってみましたが、今度はF#で挑戦。 https://gist.github.com/4578600 この週末にフィボナッチ計算ができるところまで作ってみました。 言語の構文は 2週間でできる! スクリプト言語の作り方 (Software Design pl…

Doma 1.27.1 をリリース

Doma 1.27.1 をリリースしました。ダウンロードはこちらからどうぞ。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/index.php?Maven2RepoRemote 以前のバージョンから移行するには移行ガイ…