diff options
Diffstat (limited to 'src/clojure/contrib/probabilities')
-rw-r--r-- | src/clojure/contrib/probabilities/examples_finite_distributions.clj | 10 | ||||
-rw-r--r-- | src/clojure/contrib/probabilities/finite_distributions.clj | 17 |
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 |