<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: A monad tutorial for Clojure programmers (part 4)</title>
	<atom:link href="http://onclojure.com/2009/04/24/a-monad-tutorial-for-clojure-programmers-part-4/feed/" rel="self" type="application/rss+xml" />
	<link>http://onclojure.com/2009/04/24/a-monad-tutorial-for-clojure-programmers-part-4/</link>
	<description>A blog about everything Clojure</description>
	<lastBuildDate>Thu, 09 May 2013 14:29:18 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Monad Monad Monad &#8230; &#124; 따라쟁이</title>
		<link>http://onclojure.com/2009/04/24/a-monad-tutorial-for-clojure-programmers-part-4/#comment-212</link>
		<dc:creator><![CDATA[Monad Monad Monad &#8230; &#124; 따라쟁이]]></dc:creator>
		<pubDate>Sat, 01 Sep 2012 13:53:10 +0000</pubDate>
		<guid isPermaLink="false">http://onclojure.com/?p=51#comment-212</guid>
		<description><![CDATA[[...] A monad tutorial for Clojure programmers Part 1, Part 2, Part 3, Part 4 [...]]]></description>
		<content:encoded><![CDATA[<p>[...] A monad tutorial for Clojure programmers Part 1, Part 2, Part 3, Part 4 [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: khinsen</title>
		<link>http://onclojure.com/2009/04/24/a-monad-tutorial-for-clojure-programmers-part-4/#comment-43</link>
		<dc:creator><![CDATA[khinsen]]></dc:creator>
		<pubDate>Mon, 04 May 2009 12:43:52 +0000</pubDate>
		<guid isPermaLink="false">http://onclojure.com/?p=51#comment-43</guid>
		<description><![CDATA[Part 2 of Jim Duey&#039;s monad tutorial also covers monad transformers, but very differently. Check it out at http://intensivesystems.net/tutorials/monads_201.html]]></description>
		<content:encoded><![CDATA[<p>Part 2 of Jim Duey&#8217;s monad tutorial also covers monad transformers, but very differently. Check it out at <a href="http://intensivesystems.net/tutorials/monads_201.html" rel="nofollow">http://intensivesystems.net/tutorials/monads_201.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: khinsen</title>
		<link>http://onclojure.com/2009/04/24/a-monad-tutorial-for-clojure-programmers-part-4/#comment-42</link>
		<dc:creator><![CDATA[khinsen]]></dc:creator>
		<pubDate>Mon, 04 May 2009 12:43:41 +0000</pubDate>
		<guid isPermaLink="false">http://onclojure.com/?p=51#comment-42</guid>
		<description><![CDATA[You can do a lot with sequences, but I don&#039;t see how you would do ancestral sampling. In fact, ancestral sampling is an example for what monads are made for: composing computations in which each step can depend on the result of previous steps.

As for moving around in a parameter space, I haven&#039;t done this yet in Clojure, but as a first attempt I would put the current point in parameter space into the state of a state monad, along with the state of the random number generator.]]></description>
		<content:encoded><![CDATA[<p>You can do a lot with sequences, but I don&#8217;t see how you would do ancestral sampling. In fact, ancestral sampling is an example for what monads are made for: composing computations in which each step can depend on the result of previous steps.</p>
<p>As for moving around in a parameter space, I haven&#8217;t done this yet in Clojure, but as a first attempt I would put the current point in parameter space into the state of a state monad, along with the state of the random number generator.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anand Patil</title>
		<link>http://onclojure.com/2009/04/24/a-monad-tutorial-for-clojure-programmers-part-4/#comment-41</link>
		<dc:creator><![CDATA[Anand Patil]]></dc:creator>
		<pubDate>Thu, 30 Apr 2009 14:33:00 +0000</pubDate>
		<guid isPermaLink="false">http://onclojure.com/?p=51#comment-41</guid>
		<description><![CDATA[I understand it now, thanks for the explanation! This is a very neat way of handling probabilistic operations when all of the possible outcomes can be enumerated. I can also make the leap to the &#039;sampling monad&#039; which, I&#039;m guessing, represents distributions by samples from them but also uses ancestral sampling for composition and a guard for conditioning. 

However, one could make functionality like what you&#039;ve shown using non-monadic tools from the sequence library (such as &#039;for&#039; and &#039;filter&#039;). Have you ever seen the composability of monads used to embed probabilistic manipulations in a larger computation?

Also, have you given much thought to monadic expressions of algorithms that move around in the parameter space, such as maximum likelihood and MCMC?]]></description>
		<content:encoded><![CDATA[<p>I understand it now, thanks for the explanation! This is a very neat way of handling probabilistic operations when all of the possible outcomes can be enumerated. I can also make the leap to the &#8216;sampling monad&#8217; which, I&#8217;m guessing, represents distributions by samples from them but also uses ancestral sampling for composition and a guard for conditioning. </p>
<p>However, one could make functionality like what you&#8217;ve shown using non-monadic tools from the sequence library (such as &#8216;for&#8217; and &#8216;filter&#8217;). Have you ever seen the composability of monads used to embed probabilistic manipulations in a larger computation?</p>
<p>Also, have you given much thought to monadic expressions of algorithms that move around in the parameter space, such as maximum likelihood and MCMC?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: A monad tutorial for Clojure programmers (part 3) &#171; On Clojure</title>
		<link>http://onclojure.com/2009/04/24/a-monad-tutorial-for-clojure-programmers-part-4/#comment-33</link>
		<dc:creator><![CDATA[A monad tutorial for Clojure programmers (part 3) &#171; On Clojure]]></dc:creator>
		<pubDate>Fri, 24 Apr 2009 16:15:48 +0000</pubDate>
		<guid isPermaLink="false">http://onclojure.com/?p=51#comment-33</guid>
		<description><![CDATA[[...] Part 4 will show you how to define your own monads by combining monad building blocks called monad transformers. As an illustration, I will explain the probability monad and how it can be used for Bayesian estimates when combined with the maybe-transformer. Possibly related posts: (automatically generated)jQuery is a MonadRemoving default values from CakePHP resultHow you should(n&#8217;t) use Monad   Comments (8) [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Part 4 will show you how to define your own monads by combining monad building blocks called monad transformers. As an illustration, I will explain the probability monad and how it can be used for Bayesian estimates when combined with the maybe-transformer. Possibly related posts: (automatically generated)jQuery is a MonadRemoving default values from CakePHP resultHow you should(n&rsquo;t) use Monad   Comments (8) [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
