<?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 on: F#: Stuff I get confused about</title>
	<atom:link href="http://www.markhneedham.com/blog/2009/05/02/f-stuff-i-get-confused-about/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.markhneedham.com/blog/2009/05/02/f-stuff-i-get-confused-about/</link>
	<description>Thoughts on Software Development</description>
	<lastBuildDate>Sat, 11 Feb 2012 23:17:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Mark Needham: Learning: Writing about simple things &#124; Software Secret Weapons</title>
		<link>http://www.markhneedham.com/blog/2009/05/02/f-stuff-i-get-confused-about/comment-page-1/#comment-56014</link>
		<dc:creator>Mark Needham: Learning: Writing about simple things &#124; Software Secret Weapons</dc:creator>
		<pubDate>Thu, 21 Oct 2010 03:17:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1192#comment-56014</guid>
		<description>[...] example about a year and a half ago I wrote a post about some common things that I&#8217;d been getting confused with and I was quite surprised to notice that I never confused them again once I&#8217;d written that [...]</description>
		<content:encoded><![CDATA[<p>[...] example about a year and a half ago I wrote a post about some common things that I&#8217;d been getting confused with and I was quite surprised to notice that I never confused them again once I&#8217;d written that [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Learning: Writing about simple things at Mark Needham</title>
		<link>http://www.markhneedham.com/blog/2009/05/02/f-stuff-i-get-confused-about/comment-page-1/#comment-55964</link>
		<dc:creator>Learning: Writing about simple things at Mark Needham</dc:creator>
		<pubDate>Wed, 20 Oct 2010 20:53:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1192#comment-55964</guid>
		<description>[...] example about a year and a half ago I wrote a post about some common things that I&#039;d been getting confused with and I was quite surprised to notice that I never confused them again once I&#039;d written that [...]</description>
		<content:encoded><![CDATA[<p>[...] example about a year and a half ago I wrote a post about some common things that I&#039;d been getting confused with and I was quite surprised to notice that I never confused them again once I&#039;d written that [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Weekly Link Post 93 &#171; Rhonda Tipton&#8217;s WebLog</title>
		<link>http://www.markhneedham.com/blog/2009/05/02/f-stuff-i-get-confused-about/comment-page-1/#comment-16718</link>
		<dc:creator>Weekly Link Post 93 &#171; Rhonda Tipton&#8217;s WebLog</dc:creator>
		<pubDate>Tue, 12 May 2009 01:58:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1192#comment-16718</guid>
		<description>[...] Mark Needham talks F# in the post F#: Stuff I get confused about.&#160; [...]</description>
		<content:encoded><![CDATA[<p>[...] Mark Needham talks F# in the post F#: Stuff I get confused about.&nbsp; [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Reflective Perspective - Chris Alcock &#187; The Morning Brew #340</title>
		<link>http://www.markhneedham.com/blog/2009/05/02/f-stuff-i-get-confused-about/comment-page-1/#comment-16171</link>
		<dc:creator>Reflective Perspective - Chris Alcock &#187; The Morning Brew #340</dc:creator>
		<pubDate>Tue, 05 May 2009 07:41:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1192#comment-16171</guid>
		<description>[...] F#: Stuff I get confused about - Mark Needham looks at 2 common causes of confusion for developers getting used to F# [...]</description>
		<content:encoded><![CDATA[<p>[...] F#: Stuff I get confused about &#8211; Mark Needham looks at 2 common causes of confusion for developers getting used to F# [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Larry Smith</title>
		<link>http://www.markhneedham.com/blog/2009/05/02/f-stuff-i-get-confused-about/comment-page-1/#comment-16153</link>
		<dc:creator>Larry Smith</dc:creator>
		<pubDate>Tue, 05 May 2009 02:34:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1192#comment-16153</guid>
		<description>Just for clarification, in your point about Passing arguments to functions

1) The culprit isn&#039;t the parens, it&#039;s the comma. A Tuple is defined as a comma-separated list of items. The parens are not specifically needed. With that said, the precedence of the &quot;,&quot; operator is fairly low, so the expression &quot;foo a,b&quot; is taken as a 2-tuple, the first part being the value of &quot;foo a&quot; and the second being &quot;b&quot;. However if you wrote it with parens, &quot;foo (a, b)&quot;, this applies the function &quot;foo&quot; to the 2-tuple &quot;a, b&quot;.

2) Technically, when you call a .NET Framework function (&quot;foo&quot;) that takes (say) three arguments, the F# interface requires that you pass a *single* parameter, which in this case would be a 3-tuple. Hence the parens are required (as per the previous point). So the difference is that in F# you need the parens so that the statement parses the way you want it to, whereas in C# they&#039;re necessary simply because that&#039;s a syntactic requirement of the language. 

2a) I&#039;ve never tried it, but presumably you could rewrite &quot;foo(a, b, c)&quot; as two statements, &quot;let args = a, b, c&quot; followed by &quot;foo args&quot; (and with no parens at all).



Re your point about single pass compilation, I recently asked Don Syme about making multiple source passes to improve the type inference process. His reply was &quot;Yes, it’s possible to do multi-pass type inference. There are also single-pass variations that generate a finite set of constraints.

However these approaches tend to give bad error messages and poor intellisense results in a visual editor.
&quot;</description>
		<content:encoded><![CDATA[<p>Just for clarification, in your point about Passing arguments to functions</p>
<p>1) The culprit isn&#8217;t the parens, it&#8217;s the comma. A Tuple is defined as a comma-separated list of items. The parens are not specifically needed. With that said, the precedence of the &#8220;,&#8221; operator is fairly low, so the expression &#8220;foo a,b&#8221; is taken as a 2-tuple, the first part being the value of &#8220;foo a&#8221; and the second being &#8220;b&#8221;. However if you wrote it with parens, &#8220;foo (a, b)&#8221;, this applies the function &#8220;foo&#8221; to the 2-tuple &#8220;a, b&#8221;.</p>
<p>2) Technically, when you call a .NET Framework function (&#8220;foo&#8221;) that takes (say) three arguments, the F# interface requires that you pass a *single* parameter, which in this case would be a 3-tuple. Hence the parens are required (as per the previous point). So the difference is that in F# you need the parens so that the statement parses the way you want it to, whereas in C# they&#8217;re necessary simply because that&#8217;s a syntactic requirement of the language. </p>
<p>2a) I&#8217;ve never tried it, but presumably you could rewrite &#8220;foo(a, b, c)&#8221; as two statements, &#8220;let args = a, b, c&#8221; followed by &#8220;foo args&#8221; (and with no parens at all).</p>
<p>Re your point about single pass compilation, I recently asked Don Syme about making multiple source passes to improve the type inference process. His reply was &#8220;Yes, it’s possible to do multi-pass type inference. There are also single-pass variations that generate a finite set of constraints.</p>
<p>However these approaches tend to give bad error messages and poor intellisense results in a visual editor.<br />
&#8220;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DotNetShoutout</title>
		<link>http://www.markhneedham.com/blog/2009/05/02/f-stuff-i-get-confused-about/comment-page-1/#comment-15905</link>
		<dc:creator>DotNetShoutout</dc:creator>
		<pubDate>Sat, 02 May 2009 14:31:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1192#comment-15905</guid>
		<description>&lt;strong&gt;F#: Stuff I get confused about - Mark Needham...&lt;/strong&gt;

Thank you for submitting this cool story - Trackback from DotNetShoutout...</description>
		<content:encoded><![CDATA[<p><strong>F#: Stuff I get confused about &#8211; Mark Needham&#8230;</strong></p>
<p>Thank you for submitting this cool story &#8211; Trackback from DotNetShoutout&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>

