Вот код:
let rec Y func tracker args = func args (Y func tracker (tracker args)) let fib N = (fun (x, y) -> x) (Y (fun N (prev, pprev) -> if N = 1 then (1, 0) else (prev + pprev, prev)) (fun N -> N - 1) N) let main = let value = fib 10 System.Console.WriteLine(value) System.Console.ReadKey()При компиляции и запуске вместо полного вычисления первой лямбда-функции с N = 0 она почему-то вычисляет бесполезные значения N, меньшие нуля! Что происходит? Может, «лень» можно как-то заставить? Теги: #F# #whatzanah #jamb #fp #Chulan
Вместе с данным постом часто просматривают:
-
Знаете Ли Вы, О Чем Говорит Ваш Веб-Трафик?
19 Oct, 24 -
Найди Меня, Если Сможешь
19 Oct, 24 -
Обама = Nokia, Маккейн = Apple
19 Oct, 24