commit 8f1ea6efc92a570471b1b4be45d3c554b58bdd6c
parent c9b3f42e07404fa53338fb65b9157f83dc7d447f
Author: Jared Tobin <jared@jtobin.ca>
Date: Sun, 20 Oct 2013 22:01:11 +1300
Update documentation.
Diffstat:
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/src/Measurable.hs b/src/Measurable.hs
@@ -41,19 +41,22 @@ import Numeric.Integration.TanhSinh
-- plugged in - a measurable function - and from there, we can finish the
-- computation and return a value. A measure is actually represented as a
-- *program* that, given a measurable function, integrates that function.
--- It's thus completely equivalent to the Continuation monad.
+-- It's thus completely equivalent to the Continuation monad, albeit with
+-- a restricted result type.
--
--- This is equivalent to the type that forms the Continuation monad, albeit
--- with constant (Double) result type. The functor and monad instances follow
--- suit.
---
--- The strength of the Monad instance is that it allows us to do Bayesian
--- inference. That is,
+-- The Functor instance provides the ability to create pushforward/image
+-- measures. That's handled by good ol' fmap. The strength of the Monad
+-- instance is that it allows us to do Bayesian inference. That is,
--
-- priorMeasure >>= likelihoodMeasure == posteriorPredictiveMeasure
--
+-- or, using arguably more modern terminology:
+--
+-- parameterModel >>= dataModel == model
+--
-- Ex, given 'betaMeasure a b' and 'binomMeasure n p' functions that create
--- the obvious measures, we can express a beta-binomial model like so:
+-- the obvious measures, we can express a (Bayesian) beta-binomial model like
+-- so:
--
-- betaBinomialConjugate :: Double -> Double -> Int -> Measure Double
-- betaBinomialConjugate a b n = do