diff options
author | Konrad Hinsen <konrad.hinsen@laposte.net> | 2009-02-15 22:04:30 +0000 |
---|---|---|
committer | Konrad Hinsen <konrad.hinsen@laposte.net> | 2009-02-15 22:04:30 +0000 |
commit | ab67c84237f052fea57d7cbfc45d7908026f46fa (patch) | |
tree | 21757506115ff02b6ee257532e48e3bfb914effe /src/clojure/contrib/monads | |
parent | 742d0143421335f7eea6ca858efe9af576ec8f6a (diff) |
monads: fixes to make it work with the lazy branch
Diffstat (limited to 'src/clojure/contrib/monads')
-rw-r--r-- | src/clojure/contrib/monads/examples.clj | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/clojure/contrib/monads/examples.clj b/src/clojure/contrib/monads/examples.clj index 98ffaecd..54748d74 100644 --- a/src/clojure/contrib/monads/examples.clj +++ b/src/clojure/contrib/monads/examples.clj @@ -7,6 +7,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (ns clojure.contrib.monads.examples + (:use [clojure.contrib.macros :only (lazy-and-standard-branch)]) (:use clojure.contrib.monads) (:require (clojure.contrib [accumulators :as accu]))) @@ -150,9 +151,18 @@ ; We define a convenience function that creates an infinite lazy seq ; of values obtained from iteratively applying a state monad value. -(defn value-seq [f seed] - (let [[value next] (f seed)] - (lazy-cons value (value-seq f next)))) +(lazy-and-standard-branch + + (defn value-seq [f seed] + (lazy-seq + (let [[value next] (f seed)] + (cons value (value-seq f next))))) + + (defn value-seq [f seed] + (let [[value next] (f seed)] + (lazy-cons value (value-seq f next)))) + +) ; Next, we define basic statistics functions to check our random numbers (defn sum [xs] (apply + xs)) |