<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Some Details on F# Computation Expressions</title><link>http://blogs.msdn.com/dsyme/archive/2007/09/22/some-details-on-f-computation-expressions-aka-monadic-or-workflow-syntax.aspx</link><description>One of the things we added to F# in version 1.9.2 is a syntax for computation expressions . These are a generalization of the sequence expressions added in F# 1.9.1. In this post I'll drill down on some more technical details on sequence expressions and</description><dc:language>en-GB</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Some Details on F# Computation Expressions</title><link>http://blogs.msdn.com/dsyme/archive/2007/09/22/some-details-on-f-computation-expressions-aka-monadic-or-workflow-syntax.aspx#5244613</link><pubDate>Tue, 02 Oct 2007 19:13:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5244613</guid><dc:creator>rog</dc:creator><description>&lt;P&gt;this is interesting, and i think understand a reasonable portion of what's going on in the "de-sugarisation" process. i'm confused, however, by the difference between let and bind (let vs. let! ?) and between return and return!. return! and let! seem like keywords to me, but don't seem to be mentioned in the F# manual page.&lt;/P&gt;
&lt;P&gt;any pointers to a reference or a blog entry talking about these things?&lt;/P&gt;
&lt;P&gt;the point at which i stumble in the example is at:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;let! n2 = failIfBig inp2&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;let sum = n1 + n2&lt;/P&gt;
&lt;P&gt;that is, i can't work out how the addition&lt;/P&gt;
&lt;P&gt;can be valid if n2 is the&lt;/P&gt;
&lt;P&gt;result of calling failIfBig, hence of type&lt;/P&gt;
&lt;P&gt;Attempt&amp;lt;int&amp;gt;, i.e. (unit -&amp;gt; int option)&lt;/P&gt;
&lt;P&gt;and there's no addition operator specified in terms of &amp;nbsp;that type.&lt;/P&gt;
&lt;P&gt;[ Don says: the&amp;nbsp;"let!" strips of the&amp;nbsp;Attempt&amp;lt;_&amp;gt; from the Attempt&amp;lt;int&amp;gt; through the process of calling Bind in the de-sugared version. That's what bind is for.&amp;nbsp;So n1 has type "int". ]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Introducing F# Asynchronous Workflows</title><link>http://blogs.msdn.com/dsyme/archive/2007/09/22/some-details-on-f-computation-expressions-aka-monadic-or-workflow-syntax.aspx#5395879</link><pubDate>Thu, 11 Oct 2007 04:03:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5395879</guid><dc:creator>Don Syme's WebLog on F# and Other Research Projects</dc:creator><description>&lt;p&gt;F# 1.9.2.9 includes a pre-release of new F# functionality called asynchronous workflows . In this blog&lt;/p&gt;
</description></item><item><title>Software Transactional Memory for F#</title><link>http://blogs.msdn.com/dsyme/archive/2007/09/22/some-details-on-f-computation-expressions-aka-monadic-or-workflow-syntax.aspx#7118365</link><pubDate>Tue, 15 Jan 2008 17:45:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7118365</guid><dc:creator>Hell Is Other Languages</dc:creator><description>&lt;p&gt;I have written a library for using software transactional memory in F#. The library exposes memory transactions...&lt;/p&gt;
</description></item><item><title>Greg Neverov: Software Transactional Memory for F#</title><link>http://blogs.msdn.com/dsyme/archive/2007/09/22/some-details-on-f-computation-expressions-aka-monadic-or-workflow-syntax.aspx#7145164</link><pubDate>Fri, 18 Jan 2008 04:25:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7145164</guid><dc:creator>Don Syme's WebLog on F# and Other Research Projects</dc:creator><description>&lt;p&gt;Greg Neverov (of active patterns fame) has placed an implementation of Software Transactional Memory&lt;/p&gt;
</description></item><item><title>Parameterized State Transformer Monad in F#?</title><link>http://blogs.msdn.com/dsyme/archive/2007/09/22/some-details-on-f-computation-expressions-aka-monadic-or-workflow-syntax.aspx#9043443</link><pubDate>Wed, 05 Nov 2008 08:30:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9043443</guid><dc:creator>This Blog Can Also Be A Hat</dc:creator><description>&lt;p&gt;I have have been playing around with F# and I decided to create a state monad. This worked out really&lt;/p&gt;
</description></item><item><title>Programming &gt; &gt; &gt; Computer Science</title><link>http://blogs.msdn.com/dsyme/archive/2007/09/22/some-details-on-f-computation-expressions-aka-monadic-or-workflow-syntax.aspx#9254000</link><pubDate>Sat, 27 Dec 2008 03:54:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9254000</guid><dc:creator>sUpER pOke</dc:creator><description>&lt;p&gt;Pre nešto više od pet godina sa nekoliko drugara otvorio sam školu računara i oo tada se vikendom u njoj&lt;/p&gt;
</description></item><item><title>What is F#?</title><link>http://blogs.msdn.com/dsyme/archive/2007/09/22/some-details-on-f-computation-expressions-aka-monadic-or-workflow-syntax.aspx#9441474</link><pubDate>Mon, 23 Feb 2009 19:18:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9441474</guid><dc:creator>Change the world with Microsoft Technology  </dc:creator><description>&lt;p&gt;These pages document F# as a research project. You can find out all about the latest happenings with&lt;/p&gt;
</description></item></channel></rss>