fib

とりあえずフィボナッチ数列コンパイル可能に。


ソース

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になって
フローがぐちゃぐちゃになった
変なコードが出てきた。
あんまり読む気がしないので放置。