Пробую пример с правосторонней разверткой списка.
let a=1L;
let b=1000000L;
let list=[a..b];
let fold_right func acc list =
let rec loop list cont = //сюда мы передаем текущую функцию континуации
match list with
|[] -> cont acc //а вот и наше ключевое вычисление.
|head::tail -> loop tail (fun racc -> cont (func head racc))
loop list (fun x -> x)
let reverse = fold_right(fun _ acc -> acc + 1) 0
let sl=reverse(list);
System.Console.Write(sl);
System.Console.Read();
но поечему то вылетает с переполненеим стека, хотя такой код вреод как должне решить проблемы переполнен стека (взял тсюуда http://habrahabr.ru/post/57503/) подскажите плз, где грабли?
Я бы использовал этот язык в качестве языка для скриптинга другой (большей) программы 10.SQL (+8) - какой "скриптинг" на скуле?) и фортран обошел вб, тоже смешно)
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой