Ленивость в окамле
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:50 pm (UTC)А второй компонент call by need - sharing - сам окамл делает безо всяких усилий с нашей стороны.
no subject
Date: 2013-08-13 05:09 pm (UTC)no subject
Date: 2013-08-13 05:22 pm (UTC)no subject
Date: 2013-08-13 05:27 pm (UTC)no subject
Date: 2013-08-13 05:29 pm (UTC)no subject
Date: 2013-08-13 06:04 pm (UTC)no subject
Date: 2013-08-13 06:05 pm (UTC)