<?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>A Brief Introduction to F#</title><link>http://blogs.msdn.com/b/ukmsdn/archive/2010/12/01/a-brief-introduction-to-f.aspx</link><description>Our guest writer for this fortnight’s MSDN Flash is Mark Bloodworth , an Architect Evangelist at Microsoft UK, who kindly offered to write a brief introduction to F#. Mark’s interests extend to all those “other” languages like Ruby, Python and F# so we</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>re: A Brief Introduction to F#</title><link>http://blogs.msdn.com/b/ukmsdn/archive/2010/12/01/a-brief-introduction-to-f.aspx#10099570</link><pubDate>Thu, 02 Dec 2010 15:42:31 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10099570</guid><dc:creator>John Donnelly</dc:creator><description>&lt;p&gt;Nice post Mark. I needed that overview. Examples are the key to getting these things through my thick skull.&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10099570" width="1" height="1"&gt;</description></item><item><title>re: A Brief Introduction to F#</title><link>http://blogs.msdn.com/b/ukmsdn/archive/2010/12/01/a-brief-introduction-to-f.aspx#10099477</link><pubDate>Thu, 02 Dec 2010 12:05:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10099477</guid><dc:creator>Mark Bloodworth</dc:creator><description>&lt;p&gt;Mike, you&amp;#39;re quite right. &amp;nbsp;The x can be omitted.&lt;/p&gt;
&lt;p&gt;iouri - I wanted to include the concept of immutability and maybe the example is too simple.. &amp;nbsp;As I understand it, identifiers in functions can be redefined (as in your example) although I think this may be at the cost of reability. &amp;nbsp;I also think that for newcomer to F#, there is a benefit in adopting a functional style (as aopposed to continuing to use an imperative style.)&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10099477" width="1" height="1"&gt;</description></item><item><title>re: A Brief Introduction to F#</title><link>http://blogs.msdn.com/b/ukmsdn/archive/2010/12/01/a-brief-introduction-to-f.aspx#10099419</link><pubDate>Thu, 02 Dec 2010 10:07:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10099419</guid><dc:creator>Mike Hadlow</dc:creator><description>&lt;p&gt;Mark, in your currying example, there&amp;#39;s no need to supply the &amp;#39;x&amp;#39;:&lt;/p&gt;
&lt;p&gt;&amp;gt; let m a b = a * b;;&lt;/p&gt;
&lt;p&gt;val m : int -&amp;gt; int -&amp;gt; int&lt;/p&gt;
&lt;p&gt;&amp;gt; let square = m 2;;&lt;/p&gt;
&lt;p&gt;val square : (int -&amp;gt; int)&lt;/p&gt;
&lt;p&gt;&amp;gt; square 3;;&lt;/p&gt;
&lt;p&gt;val it : int = 6&lt;/p&gt;
&lt;p&gt;&amp;gt; &lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10099419" width="1" height="1"&gt;</description></item><item><title>re: A Brief Introduction to F#</title><link>http://blogs.msdn.com/b/ukmsdn/archive/2010/12/01/a-brief-introduction-to-f.aspx#10099402</link><pubDate>Thu, 02 Dec 2010 09:21:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10099402</guid><dc:creator>iouri</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;The immutability example is a bit misleading. The code will compile unless used in a module to declare two bindings with the same name.&lt;/p&gt;
&lt;p&gt;Following function:&lt;/p&gt;
&lt;p&gt;let f () =&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;let x = 1&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;let x = x + 1&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;x&lt;/p&gt;
&lt;p&gt;is perfectly valid, compiles and returns 2 as its result.&lt;/p&gt;
&lt;p&gt;iouris at gmail dot com&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10099402" width="1" height="1"&gt;</description></item><item><title>re: A Brief Introduction to F#</title><link>http://blogs.msdn.com/b/ukmsdn/archive/2010/12/01/a-brief-introduction-to-f.aspx#10099398</link><pubDate>Thu, 02 Dec 2010 09:09:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10099398</guid><dc:creator>mr</dc:creator><description>&lt;p&gt;Is &lt;/p&gt;
&lt;p&gt; &amp;nbsp; let double x = multiply 2 x&lt;/p&gt;
&lt;p&gt;really an example for &amp;quot;currying&amp;quot;? Shouldn&amp;#39;t it be&lt;/p&gt;
&lt;p&gt; &amp;nbsp; let double = multiply 2&lt;/p&gt;
&lt;p&gt;?&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10099398" width="1" height="1"&gt;</description></item></channel></rss>