<?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: Hide your Design Decisions with Abstract Data Types</title>
	<atom:link href="http://blog.matthewdoig.com/?feed=rss2&#038;p=169" rel="self" type="application/rss+xml" />
	<link>http://blog.matthewdoig.com/?p=169</link>
	<description>Matthew Doig's Weblog</description>
	<lastBuildDate>Tue, 08 Sep 2009 23:36:14 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Johann Deneux</title>
		<link>http://blog.matthewdoig.com/?p=169&#038;cpage=1#comment-173</link>
		<dc:creator>Johann Deneux</dc:creator>
		<pubDate>Tue, 16 Dec 2008 21:54:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.matthewdoig.com/?p=169#comment-173</guid>
		<description>After some more thinking, I agree that interfaces and abstract classes are not enough. For instance, one must use parametrized types to specify the union operation, and even then, one can&#039;t take advantage of inheritance (but is it actually needed?)

IMO, it would be less confusing to compare the ML approach with classes and generics in F# (see for instance the INumeric interface, which I now see you wrote about in another post). Your approach described here using modules feels very unnatural to me.</description>
		<content:encoded><![CDATA[<p>After some more thinking, I agree that interfaces and abstract classes are not enough. For instance, one must use parametrized types to specify the union operation, and even then, one can&#8217;t take advantage of inheritance (but is it actually needed?)</p>
<p>IMO, it would be less confusing to compare the ML approach with classes and generics in F# (see for instance the INumeric interface, which I now see you wrote about in another post). Your approach described here using modules feels very unnatural to me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mattdoig</title>
		<link>http://blog.matthewdoig.com/?p=169&#038;cpage=1#comment-167</link>
		<dc:creator>mattdoig</dc:creator>
		<pubDate>Tue, 16 Dec 2008 04:16:19 +0000</pubDate>
		<guid isPermaLink="false">http://blog.matthewdoig.com/?p=169#comment-167</guid>
		<description>Glad i could be off assistance Art,

Knowing VB or C# seems to be more beneficial than knowing an ML derivative for learning F#.  So is F# ML for .Net or really just C# in functional clothes?  Unfortunately, i believe too much of the latter and not enough of the former.</description>
		<content:encoded><![CDATA[<p>Glad i could be off assistance Art,</p>
<p>Knowing VB or C# seems to be more beneficial than knowing an ML derivative for learning F#.  So is F# ML for .Net or really just C# in functional clothes?  Unfortunately, i believe too much of the latter and not enough of the former.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mattdoig</title>
		<link>http://blog.matthewdoig.com/?p=169&#038;cpage=1#comment-166</link>
		<dc:creator>mattdoig</dc:creator>
		<pubDate>Tue, 16 Dec 2008 04:09:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.matthewdoig.com/?p=169#comment-166</guid>
		<description>Jarle and Johann,

The purpose of the post was to attempt to implement ADT&#039;s in a manner consistent with other ML derviatives.  F# is an ML derivative implented on the .Net platform after all.

I would argue solving the above problem with clases and interfaces would be rather strange to an ML programmer.  We could fall back on our C# and VB skills to do C# in F#, but would we find ourselves in the same position as C programmers who tried to write C in Java?</description>
		<content:encoded><![CDATA[<p>Jarle and Johann,</p>
<p>The purpose of the post was to attempt to implement ADT&#8217;s in a manner consistent with other ML derviatives.  F# is an ML derivative implented on the .Net platform after all.</p>
<p>I would argue solving the above problem with clases and interfaces would be rather strange to an ML programmer.  We could fall back on our C# and VB skills to do C# in F#, but would we find ourselves in the same position as C programmers who tried to write C in Java?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Art Scott</title>
		<link>http://blog.matthewdoig.com/?p=169&#038;cpage=1#comment-165</link>
		<dc:creator>Art Scott</dc:creator>
		<pubDate>Mon, 15 Dec 2008 19:09:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.matthewdoig.com/?p=169#comment-165</guid>
		<description>Thanks Matthew.

Your several blogs state clearly the issues I&#039;ve been having.
The insights you bring to F# from the FP ML, Haskell and OCaml world are a balm.
I look forward to future editions.

Art</description>
		<content:encoded><![CDATA[<p>Thanks Matthew.</p>
<p>Your several blogs state clearly the issues I&#8217;ve been having.<br />
The insights you bring to F# from the FP ML, Haskell and OCaml world are a balm.<br />
I look forward to future editions.</p>
<p>Art</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Johann Deneux</title>
		<link>http://blog.matthewdoig.com/?p=169&#038;cpage=1#comment-164</link>
		<dc:creator>Johann Deneux</dc:creator>
		<pubDate>Mon, 15 Dec 2008 18:27:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog.matthewdoig.com/?p=169#comment-164</guid>
		<description>What about interfaces and abstract classes? When implementing abstract data type, it seems to me they do the job pretty well.</description>
		<content:encoded><![CDATA[<p>What about interfaces and abstract classes? When implementing abstract data type, it seems to me they do the job pretty well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dew Drop - December 15, 2008 &#124; Alvin Ashcraft's Morning Dew</title>
		<link>http://blog.matthewdoig.com/?p=169&#038;cpage=1#comment-161</link>
		<dc:creator>Dew Drop - December 15, 2008 &#124; Alvin Ashcraft's Morning Dew</dc:creator>
		<pubDate>Mon, 15 Dec 2008 14:11:24 +0000</pubDate>
		<guid isPermaLink="false">http://blog.matthewdoig.com/?p=169#comment-161</guid>
		<description>[...] Hide your Design Decisions with Abstract Data Types (Matthew Doig) [...]</description>
		<content:encoded><![CDATA[<p>[...] Hide your Design Decisions with Abstract Data Types (Matthew Doig) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jarle Stabell</title>
		<link>http://blog.matthewdoig.com/?p=169&#038;cpage=1#comment-160</link>
		<dc:creator>Jarle Stabell</dc:creator>
		<pubDate>Mon, 15 Dec 2008 12:17:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.matthewdoig.com/?p=169#comment-160</guid>
		<description>Why are you using modules instead of interfaces and classes in F#?
(I&#039;m a beginner as a F# developer, so there may be some subtle points involved I&#039;m not aware of)</description>
		<content:encoded><![CDATA[<p>Why are you using modules instead of interfaces and classes in F#?<br />
(I&#8217;m a beginner as a F# developer, so there may be some subtle points involved I&#8217;m not aware of)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
