aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/probabilities
diff options
context:
space:
mode:
Diffstat (limited to 'src/clojure/contrib/probabilities')
-rw-r--r--src/clojure/contrib/probabilities/examples_finite_distributions.clj10
-rw-r--r--src/clojure/contrib/probabilities/finite_distributions.clj17
2 files changed, 16 insertions, 11 deletions
diff --git a/src/clojure/contrib/probabilities/examples_finite_distributions.clj b/src/clojure/contrib/probabilities/examples_finite_distributions.clj
index a7ae7618..ca301654 100644
--- a/src/clojure/contrib/probabilities/examples_finite_distributions.clj
+++ b/src/clojure/contrib/probabilities/examples_finite_distributions.clj
@@ -176,8 +176,9 @@
(normalize-cond
(domonad cond-dist-m
[die prior
- number (get dice die)]
- (when (= number observation) die))))
+ number (get dice die)
+ :when (= number observation) ]
+ die)))
; Add one observation.
(add-observation prior 1)
@@ -197,7 +198,8 @@
(normalize-cond
(domonad
[die prior
- nums (n-nums die)]
- (when (= nums observations) die))))))
+ nums (n-nums die)
+ :when (= nums observations)]
+ die)))))
(add-observations prior [1 3 7])
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