とりあえずフィボナッチ数列をコンパイル可能に。
ソース
fun fib(n)
{
if( n == 1 ) {
1;
} else {
if( n == 2 ) {
1;
} else {
fib(n-1)+fib(n-2);
}
}
}
fun main()
{
puti(fib(6));
0;
}
結果
8
たぶんあってる。
ちなみに試しに最適化してみたら
一段階だけインライン展開されて
片方がtail callになって
フローがぐちゃぐちゃになった
変なコードが出てきた。
あんまり読む気がしないので放置。