Ioという言語を触ってみる2
セルフスタディ2日目(とあるが、e_c_e_tはここにたどり着くまで結構時間を要した)
fib := method(n ,if(n==0 or n==1 , 1 , fib(n-1) + fib(n-2)))
再帰はあまり悩まなかった。インデントをどうやれば見やすいのかよくわからん。
a := list(1, 1) # ループを使って、フィボナッチ数列をリストで作る。 a for(i,1,10, append(a at(-1) + a at(-2)) # リストの末尾を取る a at(-1)
色々苦心したが、at(-1)なんて、便利なものを見つけたのでループはコレとした。ちなみに「7つの言語7つの世界」では、シンタックスシュガーなど、ない、ということになっているんだが。まぁいいや。
-
- 分母がゼロの時、ゼロを返すように/演算子を変更する
# aに Number型の/ の処理を保管(他にもやり方があったらしい、と、あとで気づく) a := Number getSlot("/") # aのサンプル、これは10/2と同じ処理 10 a(2) # Numberの/をaを使って書き換える Number / := method(n ,if( n==0 , 0 , self a(n)))
今日はここまで。