Здравствуйте, Lazy Cjow Rhrr, Вы писали:
LCR>Я с удовольствием послушаю, как вы реализуете на функторах функцию iterate:
LCR>LCR>let compose f g x = f(g x) ;;
LCR>let rec iterate n f =
LCR> if n = 0 then (function x -> x)
LCR> else compose f (iterate (n-1) f) ;;
LCR>(* использовать можно так *)
LCR>let rec power i n =
LCR> let i_times = ( * ) i in (* "i_times n" равно функции "умножить на i" n раз *)
LCR> iterate n i_times 1 ;;
LCR>power 2 8 ;; (* выдаст 256 *)
LCR>
LCR>(ocaml)
LCR>Больше чем уверен, что вы вернёте разве что функтор-интерпретатор, который будет инкапсулировать АСТ.
Вообще идея приводить человеку вообще не понимающему что такое ФП примеры на ОКамле или его аналоге — это все равно, что глумиться над старушкой заставляя читать ее учебник по высшей математике.