aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/probabilities/finite_distributions.clj
diff options
context:
space:
mode:
authorKonrad Hinsen <konrad.hinsen@laposte.net>2009-04-23 08:25:24 +0000
committerKonrad Hinsen <konrad.hinsen@laposte.net>2009-04-23 08:25:24 +0000
commit6c99b025c0a2b1afa6736234d3edbf7ea29b1d22 (patch)
tree1344fe43bf5246b442c6617d265c89d9368fb8e1 /src/clojure/contrib/probabilities/finite_distributions.clj
parent5427bcb8dc89b1813666aeaa65e51260813c423b (diff)
monads: better default for which-m-plus in maybe-t
Diffstat (limited to 'src/clojure/contrib/probabilities/finite_distributions.clj')
-rw-r--r--src/clojure/contrib/probabilities/finite_distributions.clj17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/clojure/contrib/probabilities/finite_distributions.clj b/src/clojure/contrib/probabilities/finite_distributions.clj
index 7dcc280f..3b76b318 100644
--- a/src/clojure/contrib/probabilities/finite_distributions.clj
+++ b/src/clojure/contrib/probabilities/finite_distributions.clj
@@ -114,13 +114,16 @@
)
-(defn cond-prob
- "Returns the conditional probability for the values in dist that satisfy
- the predicate pred."
- [pred dist]
- (normalize-cond
- (with-monad cond-dist-m
- (m-bind dist (fn [v] (m-result (when (pred v) v)))))))
+(with-monad cond-dist-m
+ (defn cond-prob
+ "Returns the conditional probability for the values in dist that satisfy
+ the predicate pred."
+ [pred dist]
+ (normalize-cond
+ (domonad
+ [v dist
+ :when (pred v)]
+ v))))
; Select (with equal probability) N items from a sequence