<?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/"
		>
<channel>
	<title>Comments for Ramon Snir on F#</title>
	<atom:link href="http://ramon.org.il/wp/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://ramon.org.il/wp</link>
	<description></description>
	<lastBuildDate>Mon, 19 Dec 2011 09:17:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
	<item>
		<title>Comment on Being responsible when using tail recursion and exceptions by Johann Deneux</title>
		<link>http://ramon.org.il/wp/2010/10/being-responsible-when-using-tail-recursion-and-exceptions/comment-page-1/#comment-550</link>
		<dc:creator>Johann Deneux</dc:creator>
		<pubDate>Mon, 19 Dec 2011 09:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://ramon.org.il/wp/?p=22#comment-550</guid>
		<description>IMHO, using attributes to document functions isn&#039;t optimal, comments are a better fit for that. I think attributes should be used only in cases where you expect tools to process them automatically.

You indirectly highlighted an interesting side-effect of type inference: ``with stack overflow`` doesn&#039;t have int64 as return type. It has helped me detect bugs and infinite recursions in my code before executing it in a couple occasions.</description>
		<content:encoded><![CDATA[<p>IMHO, using attributes to document functions isn&#8217;t optimal, comments are a better fit for that. I think attributes should be used only in cases where you expect tools to process them automatically.</p>
<p>You indirectly highlighted an interesting side-effect of type inference: &#8220;with stack overflow&#8220; doesn&#8217;t have int64 as return type. It has helped me detect bugs and infinite recursions in my code before executing it in a couple occasions.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Lazync Computation Expressions by Ramon Snir</title>
		<link>http://ramon.org.il/wp/2011/08/lazync-computation-expression/comment-page-1/#comment-520</link>
		<dc:creator>Ramon Snir</dc:creator>
		<pubDate>Sun, 11 Dec 2011 20:04:57 +0000</pubDate>
		<guid isPermaLink="false">http://ramon.org.il/wp/?p=67#comment-520</guid>
		<description>Gustavo: you&#039;re welcome to add it!</description>
		<content:encoded><![CDATA[<p>Gustavo: you&#8217;re welcome to add it!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Lazync Computation Expressions by Gustavo Guerra</title>
		<link>http://ramon.org.il/wp/2011/08/lazync-computation-expression/comment-page-1/#comment-519</link>
		<dc:creator>Gustavo Guerra</dc:creator>
		<pubDate>Sun, 11 Dec 2011 20:01:26 +0000</pubDate>
		<guid isPermaLink="false">http://ramon.org.il/wp/?p=67#comment-519</guid>
		<description>This is really cool. You should add this monad to the fsharpx library</description>
		<content:encoded><![CDATA[<p>This is really cool. You should add this monad to the fsharpx library</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Lazync Computation Expressions by Jason</title>
		<link>http://ramon.org.il/wp/2011/08/lazync-computation-expression/comment-page-1/#comment-288</link>
		<dc:creator>Jason</dc:creator>
		<pubDate>Tue, 16 Aug 2011 04:20:45 +0000</pubDate>
		<guid isPermaLink="false">http://ramon.org.il/wp/?p=67#comment-288</guid>
		<description>Useful, thanks</description>
		<content:encoded><![CDATA[<p>Useful, thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Taking Computation Expressions one step further by Ramon Snir</title>
		<link>http://ramon.org.il/wp/2011/04/taking-computation-expressions-one-step-further/comment-page-1/#comment-159</link>
		<dc:creator>Ramon Snir</dc:creator>
		<pubDate>Sun, 03 Apr 2011 14:19:37 +0000</pubDate>
		<guid isPermaLink="false">http://ramon.org.il/wp/?p=45#comment-159</guid>
		<description>@MBR: I am a big fan of DSLs, so I felt it is really missing from F#. If you want to keep inside the functional paradigm, you should also be careful with regular computation expressions (e.g. Tomas Petricek&#039;s imperative monad).

I think that the e-monads are a good place to start when designing a DSL - you got a good basis, but you are still limited to F# logic.</description>
		<content:encoded><![CDATA[<p>@MBR: I am a big fan of DSLs, so I felt it is really missing from F#. If you want to keep inside the functional paradigm, you should also be careful with regular computation expressions (e.g. Tomas Petricek&#8217;s imperative monad).</p>
<p>I think that the e-monads are a good place to start when designing a DSL &#8211; you got a good basis, but you are still limited to F# logic.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Taking Computation Expressions one step further by MBR</title>
		<link>http://ramon.org.il/wp/2011/04/taking-computation-expressions-one-step-further/comment-page-1/#comment-158</link>
		<dc:creator>MBR</dc:creator>
		<pubDate>Sun, 03 Apr 2011 00:45:58 +0000</pubDate>
		<guid isPermaLink="false">http://ramon.org.il/wp/?p=45#comment-158</guid>
		<description>Arg - that was only half my response...
Anyway, good work getting in there and extending the compiler...</description>
		<content:encoded><![CDATA[<p>Arg &#8211; that was only half my response&#8230;<br />
Anyway, good work getting in there and extending the compiler&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Taking Computation Expressions one step further by MBR</title>
		<link>http://ramon.org.il/wp/2011/04/taking-computation-expressions-one-step-further/comment-page-1/#comment-156</link>
		<dc:creator>MBR</dc:creator>
		<pubDate>Sat, 02 Apr 2011 16:31:27 +0000</pubDate>
		<guid isPermaLink="false">http://ramon.org.il/wp/?p=45#comment-156</guid>
		<description>I think this sort of capibility is needed in F# - the ability to express DSL&#039;s in the language.
But when you go this far past computation you&#039;re no longer using a functional paradigm, but just emulating a macro system, with the restriction that you must over-load existing keywords - this seems like the worst of both worlds.  We should just have a user-definable sub-grammar inside of {}&#039;s, and real macros that when run take the expression tree as input, and output another one which is compiled. (Template-matching using the user-defined grammar would also be a plus.)</description>
		<content:encoded><![CDATA[<p>I think this sort of capibility is needed in F# &#8211; the ability to express DSL&#8217;s in the language.<br />
But when you go this far past computation you&#8217;re no longer using a functional paradigm, but just emulating a macro system, with the restriction that you must over-load existing keywords &#8211; this seems like the worst of both worlds.  We should just have a user-definable sub-grammar inside of {}&#8217;s, and real macros that when run take the expression tree as input, and output another one which is compiled. (Template-matching using the user-defined grammar would also be a plus.)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

