Ленивость в окамле
Aug. 13th, 2013 04:17 pmutop[0]> open Core.Std;; utop[1]> let a = lazy (printf "A\n"; 0);; val a : int lazy_t = <lazy> utop[2]> let b (a : int) = lazy (printf "B\n"; 0);; val b : int -> int lazy_t = <fun> utop[3]> Lazy.force Lazy.(a >>= b);; A B - : int = 0
Ну ё-моё...
no subject
Date: 2013-08-13 04:12 pm (UTC)Мне в окамле слово lazy за 5 лет лишь один раз пригодилось. Там, где в хаскеле используют ленивые списки, в окамле обычно хватает Enum'ов. В остальном просто стиль работы другой, энергичный. Потому особой нужды в ленивости и не чувствуется. Пытаться из окамла изобразить хаскель, делая все ленивым, - плохая затея.
no subject
Date: 2013-08-13 05:02 pm (UTC)no subject
Date: 2013-08-13 05:28 pm (UTC)В этом плане в Википедии засилие учоных - см. http://nponeccop.livejournal.com/333219.html?thread=3079331#t3079331