モノの F# に関する問題があります。私は大学で関数型プログラミングのこのコースを行っています。このコースでは F# を使用しており、エディターとして Xamarin を使用しています。
問題は、効率を得るためのツールとして末尾再帰のレッスンを行ったことです。しかし、関数の末尾再帰を記述できない場合は、スタックではなくヒープを使用するように、継続的に使用する必要がありました。
これは、F# 3.1 を使用する mono 3.10.0 では機能しないようです。System.StackOverflowException が発生します。継続的にヒープを使用する必要があるため、これを取得することは不可能です。
let rec fibC n c =
match n with
|0 -> c 0
|1 -> c 1
|n -> fibC (n-1) (fun v1 -> fibC (n-2) (fun v2 -> c(v1+v2)))