<?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 for Inside F#</title>
	<atom:link href="http://lorgonblog.wordpress.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://lorgonblog.wordpress.com</link>
	<description>Brian&#039;s thoughts on F# and .NET</description>
	<lastBuildDate>Fri, 19 Apr 2013 18:02:45 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>Comment on Catamorphisms, part eight by dsouflis</title>
		<link>http://lorgonblog.wordpress.com/2008/06/16/catamorphisms-part-eight/#comment-850</link>
		<dc:creator><![CDATA[dsouflis]]></dc:creator>
		<pubDate>Fri, 19 Apr 2013 18:02:45 +0000</pubDate>
		<guid isPermaLink="false">http://lorgonblog.wordpress.com/2008/06/16/catamorphisms-part-eight#comment-850</guid>
		<description><![CDATA[Update on my previous comment: I have published a small post on catamorphisms on recursive types: http://dsouflis.wordpress.com/2013/03/20/catamorphisms-for-recursive-types/. Thanks again, Brian, for the inspiration.]]></description>
		<content:encoded><![CDATA[<p>Update on my previous comment: I have published a small post on catamorphisms on recursive types: <a href="http://dsouflis.wordpress.com/2013/03/20/catamorphisms-for-recursive-types/" rel="nofollow">http://dsouflis.wordpress.com/2013/03/20/catamorphisms-for-recursive-types/</a>. Thanks again, Brian, for the inspiration.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Visual F# 3.0 Beta by Don Syme</title>
		<link>http://lorgonblog.wordpress.com/2012/02/29/visual-f-3-0-beta/#comment-746</link>
		<dc:creator><![CDATA[Don Syme]]></dc:creator>
		<pubDate>Thu, 01 Mar 2012 17:47:16 +0000</pubDate>
		<guid isPermaLink="false">https://lorgonblog.wordpress.com/?p=330#comment-746</guid>
		<description><![CDATA[Please do blog more, we&#039;ve missed you!

You&#039;ve worked so hard on F# 3.0, it&#039;s been an incredible pleasure and honour to work on F# 3.0 with you and the team!

Don]]></description>
		<content:encoded><![CDATA[<p>Please do blog more, we&#8217;ve missed you!</p>
<p>You&#8217;ve worked so hard on F# 3.0, it&#8217;s been an incredible pleasure and honour to work on F# 3.0 with you and the team!</p>
<p>Don</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on F# async on the client side by semasiographologist</title>
		<link>http://lorgonblog.wordpress.com/2010/03/27/f-async-on-the-client-side/#comment-733</link>
		<dc:creator><![CDATA[semasiographologist]]></dc:creator>
		<pubDate>Fri, 13 Jan 2012 21:26:32 +0000</pubDate>
		<guid isPermaLink="false">http://lorgonblog.wordpress.com/2010/03/27/f-async-on-the-client-side#comment-733</guid>
		<description><![CDATA[Hi Brian. Time does fly ...
&quot;... (The real killer app for F# asyncs is server-side ...) &quot;

Is F# Async a killer app on the server-side?
I&#039;ve seen a number of articles, and understand how it fits.
Has C++,# adopted Async?

What is the killer app for F# Async Rx?

Refolding Planar Polygons does computational geometry, but needs polygon input and display animation. F# is good for the CompGeom, not so much UX input (but I&#039;m hoping to figure out Async, and Async Rx for UX), and WPF is good for the display animation. With all the new surfaces, cloud, cluster, client, etc. I&#039;m having difficulty keeping up with the road maps.

I like the cute little demos. More please.

Best in &#039;12!
PLH OOE Art]]></description>
		<content:encoded><![CDATA[<p>Hi Brian. Time does fly &#8230;<br />
&#8220;&#8230; (The real killer app for F# asyncs is server-side &#8230;) &#8221;</p>
<p>Is F# Async a killer app on the server-side?<br />
I&#8217;ve seen a number of articles, and understand how it fits.<br />
Has C++,# adopted Async?</p>
<p>What is the killer app for F# Async Rx?</p>
<p>Refolding Planar Polygons does computational geometry, but needs polygon input and display animation. F# is good for the CompGeom, not so much UX input (but I&#8217;m hoping to figure out Async, and Async Rx for UX), and WPF is good for the display animation. With all the new surfaces, cloud, cluster, client, etc. I&#8217;m having difficulty keeping up with the road maps.</p>
<p>I like the cute little demos. More please.</p>
<p>Best in &#8217;12!<br />
PLH OOE Art</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on F# source code structural colorizer available by Matej Mihelič</title>
		<link>http://lorgonblog.wordpress.com/2010/11/18/f-source-code-structural-colorizer-available/#comment-695</link>
		<dc:creator><![CDATA[Matej Mihelič]]></dc:creator>
		<pubDate>Sat, 24 Sep 2011 17:02:37 +0000</pubDate>
		<guid isPermaLink="false">https://lorgonblog.wordpress.com/2010/11/18/f-source-code-structural-colorizer-available/#comment-695</guid>
		<description><![CDATA[Hello.

I&#039;ve had quite a problem tracking down the reason for frequent crashes of my VS2010SP1. I finally found this in the Activity.Log:

  
    801
    2011/09/24 16:55:13.943
    Error
    Editor or Editor Extension
    System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.&#xD;&#xA;Parameter name: bufferPosition&#xD;&#xA;   at Microsoft.VisualStudio.Text.Editor.Implementation.TextViewLineCollection.GetCharacterBounds(SnapshotPoint bufferPosition)&#xD;&#xA;   at FSharpDepthColorizer.FullLineAdornmentManager.RefreshLine(ITextViewLine line)&#xD;&#xA;   at &lt;StartupCode$VSIXColorizer&gt;.$MyAdornmentManager.-ctor@133-23.Invoke(TextViewLayoutChangedEventArgs e)&#xD;&#xA;   at Microsoft.FSharp.Control.CommonExtensions.SubscribeToObservable@1777.OnNext(T value)&#xD;&#xA;   at Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers.h@744.Invoke(Object _arg1, TArgs args)&#xD;&#xA;   at &lt;StartupCode$VSIXColorizer&gt;.$MyAdornmentManager.-ctor@133-22.Invoke(Object sender, TextViewLayoutChangedEventArgs e)&#xD;&#xA;   at Microsoft.VisualStudio.Text.Utilities.GuardedOperations.RaiseEvent[TArgs](Object sender, EventHandler`1 eventHandlers, TArgs args)
  

Perhaps you can track it down? I hope it is not a freak colision with some other extension that I am using.]]></description>
		<content:encoded><![CDATA[<p>Hello.</p>
<p>I&#8217;ve had quite a problem tracking down the reason for frequent crashes of my VS2010SP1. I finally found this in the Activity.Log:</p>
<p>    801<br />
    2011/09/24 16:55:13.943<br />
    Error<br />
    Editor or Editor Extension<br />
    System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.&#xD;&#xA;Parameter name: bufferPosition&#xD;&#xA;   at Microsoft.VisualStudio.Text.Editor.Implementation.TextViewLineCollection.GetCharacterBounds(SnapshotPoint bufferPosition)&#xD;&#xA;   at FSharpDepthColorizer.FullLineAdornmentManager.RefreshLine(ITextViewLine line)&#xD;&#xA;   at &lt;StartupCode$VSIXColorizer&gt;.$MyAdornmentManager.-ctor@133-23.Invoke(TextViewLayoutChangedEventArgs e)&#xD;&#xA;   at <a href="mailto:Microsoft.FSharp.Control.CommonExtensions.SubscribeToObservable@1777.OnNext">Microsoft.FSharp.Control.CommonExtensions.SubscribeToObservable@1777.OnNext</a>(T value)&#xD;&#xA;   at <a href="mailto:Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers.h@744.Invoke">Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers.h@744.Invoke</a>(Object _arg1, TArgs args)&#xD;&#xA;   at &lt;StartupCode$VSIXColorizer&gt;.$MyAdornmentManager.-ctor@133-22.Invoke(Object sender, TextViewLayoutChangedEventArgs e)&#xD;&#xA;   at Microsoft.VisualStudio.Text.Utilities.GuardedOperations.RaiseEvent[TArgs](Object sender, EventHandler`1 eventHandlers, TArgs args)</p>
<p>Perhaps you can track it down? I hope it is not a freak colision with some other extension that I am using.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Catamorphisms, part eight by dsouflis</title>
		<link>http://lorgonblog.wordpress.com/2008/06/16/catamorphisms-part-eight/#comment-691</link>
		<dc:creator><![CDATA[dsouflis]]></dc:creator>
		<pubDate>Fri, 09 Sep 2011 13:01:44 +0000</pubDate>
		<guid isPermaLink="false">http://lorgonblog.wordpress.com/2008/06/16/catamorphisms-part-eight#comment-691</guid>
		<description><![CDATA[Hello Brian, the whole post series is very helpful, as there is scarce hands-on material on the subject, and whatever academic treatment is there, is usually too theoretic and impenetrable. Pity you didn&#039;t sum it all up with a final version of the whole sample code, although, if one wants to really study the subject, the time spent to walk through the eight posts and assemble it oneself is negligible.

I must say you missed the chance to mention catamorphisms on mutually recursive types (I did not even find much _academic treatment_ on that), which would have been the case for the combination of Expr and Op, had you not delegated Op to the lower status of dumb data operated upon by the Expr stuff. You often state that generating catamorphisms is type-driven and can be automated, but any automatic processor of types would have to treat Op as a regular union type as well. To be fair, I&#039;m not even sure how it could be done, but I&#039;m going to try using catamorphisms upon a real AST comprised of tens of mutually recursive types, from a project of mine, and see how it goes.

I&#039;d also like to leave a word of caution for future readers of the post series: you frequently state how using continuations makes the code tail-recursive, but, if one tries out the code, it appears that this does not happen in Debug mode, which is the usual mode one uses in order to play with - and step through - sample code.]]></description>
		<content:encoded><![CDATA[<p>Hello Brian, the whole post series is very helpful, as there is scarce hands-on material on the subject, and whatever academic treatment is there, is usually too theoretic and impenetrable. Pity you didn&#8217;t sum it all up with a final version of the whole sample code, although, if one wants to really study the subject, the time spent to walk through the eight posts and assemble it oneself is negligible.</p>
<p>I must say you missed the chance to mention catamorphisms on mutually recursive types (I did not even find much _academic treatment_ on that), which would have been the case for the combination of Expr and Op, had you not delegated Op to the lower status of dumb data operated upon by the Expr stuff. You often state that generating catamorphisms is type-driven and can be automated, but any automatic processor of types would have to treat Op as a regular union type as well. To be fair, I&#8217;m not even sure how it could be done, but I&#8217;m going to try using catamorphisms upon a real AST comprised of tens of mutually recursive types, from a project of mine, and see how it goes.</p>
<p>I&#8217;d also like to leave a word of caution for future readers of the post series: you frequently state how using continuations makes the code tail-recursive, but, if one tries out the code, it appears that this does not happen in Debug mode, which is the usual mode one uses in order to play with &#8211; and step through &#8211; sample code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Catamorphisms, part one by Alexandru Repede (@belun_)</title>
		<link>http://lorgonblog.wordpress.com/2008/04/05/catamorphisms-part-one/#comment-688</link>
		<dc:creator><![CDATA[Alexandru Repede (@belun_)]]></dc:creator>
		<pubDate>Tue, 06 Sep 2011 15:44:22 +0000</pubDate>
		<guid isPermaLink="false">http://lorgonblog.wordpress.com/2008/04/05/catamorphisms-part-one#comment-688</guid>
		<description><![CDATA[could you help with the definition of catamorphism (&quot;A catamorphism is a generalization of a fold on lists to an arbitrary data type&quot;). i understand &quot;generalization&quot; and &quot;fold on lists&quot; but what does &quot;an arbitrary data type&quot; mean? could you elaborate? and point exacts in your given examples?]]></description>
		<content:encoded><![CDATA[<p>could you help with the definition of catamorphism (&#8220;A catamorphism is a generalization of a fold on lists to an arbitrary data type&#8221;). i understand &#8220;generalization&#8221; and &#8220;fold on lists&#8221; but what does &#8220;an arbitrary data type&#8221; mean? could you elaborate? and point exacts in your given examples?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on F# source code structural colorizer available by nCdy</title>
		<link>http://lorgonblog.wordpress.com/2010/11/18/f-source-code-structural-colorizer-available/#comment-662</link>
		<dc:creator><![CDATA[nCdy]]></dc:creator>
		<pubDate>Thu, 03 Mar 2011 08:09:22 +0000</pubDate>
		<guid isPermaLink="false">https://lorgonblog.wordpress.com/2010/11/18/f-source-code-structural-colorizer-available/#comment-662</guid>
		<description><![CDATA[got bug ...

for example

    member X.deltaCompareArchive l1 l2 typenumber =
        inconnection 
            match typenumber with
            &#124; 0 -&gt;
                 Seq.filter(fun x -&gt; x.ID_Line = l1 &#124;&#124; x.ID_Line = l2) @&gt;
            &#124; _ -&gt;
                 Seq.filter(fun x -&gt; (x.ID_Line = l1 &#124;&#124; x.ID_Line = l2 ) &amp;&amp; x.DataType = typenumber ) @&gt;
            &#124;&gt; fun pquery -&gt;
                
                &#124;&gt; query &#124;&gt; Seq.choose id 
                &#124;&gt; Seq.collect(fun a -&gt; [fst a; snd a])
                &#124;&gt; Seq.distinct
                &#124;&gt; List.ofSeq
            &#124;&gt; fun p -&gt;
                if p.Length = 0 then null
                else
                    let STRackondeltas = 

so my &#124;&gt; fun p -&gt; breaks colorizer]]></description>
		<content:encoded><![CDATA[<p>got bug &#8230;</p>
<p>for example</p>
<p>    member X.deltaCompareArchive l1 l2 typenumber =<br />
        inconnection<br />
            match typenumber with<br />
            | 0 -&gt;<br />
                 Seq.filter(fun x -&gt; x.ID_Line = l1 || x.ID_Line = l2) @&gt;<br />
            | _ -&gt;<br />
                 Seq.filter(fun x -&gt; (x.ID_Line = l1 || x.ID_Line = l2 ) &amp;&amp; x.DataType = typenumber ) @&gt;<br />
            |&gt; fun pquery -&gt;</p>
<p>                |&gt; query |&gt; Seq.choose id<br />
                |&gt; Seq.collect(fun a -&gt; [fst a; snd a])<br />
                |&gt; Seq.distinct<br />
                |&gt; List.ofSeq<br />
            |&gt; fun p -&gt;<br />
                if p.Length = 0 then null<br />
                else<br />
                    let STRackondeltas = </p>
<p>so my |&gt; fun p -&gt; breaks colorizer</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Come work on F#! by Jake Swenson</title>
		<link>http://lorgonblog.wordpress.com/2011/01/26/come-work-on-f/#comment-654</link>
		<dc:creator><![CDATA[Jake Swenson]]></dc:creator>
		<pubDate>Thu, 17 Feb 2011 05:37:32 +0000</pubDate>
		<guid isPermaLink="false">https://lorgonblog.wordpress.com/2011/01/26/come-work-on-f/#comment-654</guid>
		<description><![CDATA[@Codekaizen
You can get around it by doing:

&gt; type MyVector(x : int, y , z) =          
-     let values = [&#124; x; y; z &#124;]
-     member this.Values = values;;

&gt; let v = MyVector(1,2,3);;        

val v : MyVector

&gt; v.Values.[0]  printfn &quot;%d&quot; v.Values.[0];;      
42
val it : unit = ()]]></description>
		<content:encoded><![CDATA[<p>@Codekaizen<br />
You can get around it by doing:</p>
<p>&gt; type MyVector(x : int, y , z) =<br />
-     let values = [| x; y; z |]<br />
-     member this.Values = values;;</p>
<p>&gt; let v = MyVector(1,2,3);;        </p>
<p>val v : MyVector</p>
<p>&gt; v.Values.[0]  printfn &#8220;%d&#8221; v.Values.[0];;<br />
42<br />
val it : unit = ()</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Source code for F# XmlDoc extension by alex</title>
		<link>http://lorgonblog.wordpress.com/2010/12/04/source-code-for-f-xmldoc-extension/#comment-646</link>
		<dc:creator><![CDATA[alex]]></dc:creator>
		<pubDate>Wed, 09 Feb 2011 22:28:14 +0000</pubDate>
		<guid isPermaLink="false">https://lorgonblog.wordpress.com/2010/12/04/source-code-for-f-xmldoc-extension/#comment-646</guid>
		<description><![CDATA[very nice, thanks for posting this extension, 
couple of things to make it compile: need to install Visual Studio 2010 SDK from here: http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=47305cf4-2bea-43c0-91cd-1b853602dcc5&amp;displaylang=en
 and for 32-bit machines change paths in the project file to remove (x86) from Program Files.]]></description>
		<content:encoded><![CDATA[<p>very nice, thanks for posting this extension,<br />
couple of things to make it compile: need to install Visual Studio 2010 SDK from here: <a href="http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=47305cf4-2bea-43c0-91cd-1b853602dcc5&#038;displaylang=en" rel="nofollow">http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=47305cf4-2bea-43c0-91cd-1b853602dcc5&#038;displaylang=en</a><br />
 and for 32-bit machines change paths in the project file to remove (x86) from Program Files.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Gotcha explained by F# Discoveries This Week 02/02/2011 &#171; F# Central</title>
		<link>http://lorgonblog.wordpress.com/2011/01/28/gotcha-explained/#comment-639</link>
		<dc:creator><![CDATA[F# Discoveries This Week 02/02/2011 &#171; F# Central]]></dc:creator>
		<pubDate>Wed, 02 Feb 2011 21:44:53 +0000</pubDate>
		<guid isPermaLink="false">https://lorgonblog.wordpress.com/2011/01/28/gotcha-explained/#comment-639</guid>
		<description><![CDATA[[...] Brian McNamara&#8217;s Gotcha explained “I see people occasionally stumble on this in a variety of ways; the fact that F# property getter syntax (and overall syntax) is so succinct makes it easier to forget that the body of the member is code that will run each time the member is referenced.&#160; One-time initialization should be moved to the constructor (the let/do section prior to the members; see this blog for a primer on the F# class/interface syntax).” [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Brian McNamara&#8217;s Gotcha explained “I see people occasionally stumble on this in a variety of ways; the fact that F# property getter syntax (and overall syntax) is so succinct makes it easier to forget that the body of the member is code that will run each time the member is referenced.&#160; One-time initialization should be moved to the constructor (the let/do section prior to the members; see this blog for a primer on the F# class/interface syntax).” [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>