パスカル三角形の次の関数を作成しました。コールの理由
pascal_cont(a-1, b-1, (x:Int) => pascal_cont(a, b-1, (y:Int) => cont(x + y)))
は末尾再帰的ではありませんか?
def pascal(c: Int, r: Int): Int = {
def pascal_cont(a:Int, b:Int, cont: (Int) => Int): Int = {
if (a==0 || a==b) cont(1)
else pascal_cont(a-1, b-1, (x:Int) => pascal_cont(a, b-1, (y:Int) => cont(x + y)))
}
pascal_cont(c,r,n => n)
}