From ab67c84237f052fea57d7cbfc45d7908026f46fa Mon Sep 17 00:00:00 2001 From: Konrad Hinsen Date: Sun, 15 Feb 2009 22:04:30 +0000 Subject: monads: fixes to make it work with the lazy branch --- src/clojure/contrib/monads/examples.clj | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/clojure/contrib/monads/examples.clj') 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)) -- cgit v1.2.3-18-g5258