<?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"
	>
<channel>
	<title>Kommentare zu: Higher-Order Functions and the Object-Oriented Paradigm</title>
	<atom:link href="http://www.wuenschenswert.net/wunschdenken/archives/118/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wuenschenswert.net/wunschdenken/archives/118</link>
	<description></description>
	<pubDate>Sat, 11 Oct 2008 00:03:12 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>Von: Reinier Zwitserloot</title>
		<link>http://www.wuenschenswert.net/wunschdenken/archives/118#comment-94</link>
		<dc:creator>Reinier Zwitserloot</dc:creator>
		<pubDate>Sun, 04 Feb 2007 07:45:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.wuenschenswert.net/wunschdenken/archives/118#comment-94</guid>
		<description>This is one of my favourite spars on typing that I can remember. Keep it up.

I particularly like the idea that with OO you don't really need 'closures' in the full sense of the word, just a convenient way to wrap code into an object on the spot. CICE is looking better than ever.</description>
		<content:encoded><![CDATA[<p>This is one of my favourite spars on typing that I can remember. Keep it up.</p>
<p>I particularly like the idea that with OO you don&#8217;t really need &#8216;closures&#8217; in the full sense of the word, just a convenient way to wrap code into an object on the spot. CICE is looking better than ever.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: axel</title>
		<link>http://www.wuenschenswert.net/wunschdenken/archives/118#comment-92</link>
		<dc:creator>axel</dc:creator>
		<pubDate>Sat, 03 Feb 2007 18:23:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.wuenschenswert.net/wunschdenken/archives/118#comment-92</guid>
		<description>Definitely! I wouldn't know how to explain the full power of the Command Pattern to someone who has never done functional programming. Or explain SwingUtil.invokeLater to someone who does not know about continuation passing style...</description>
		<content:encoded><![CDATA[<p>Definitely! I wouldn&#8217;t know how to explain the full power of the Command Pattern to someone who has never done functional programming. Or explain SwingUtil.invokeLater to someone who does not know about continuation passing style&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Reg Braithwaite</title>
		<link>http://www.wuenschenswert.net/wunschdenken/archives/118#comment-91</link>
		<dc:creator>Reg Braithwaite</dc:creator>
		<pubDate>Sat, 03 Feb 2007 18:10:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.wuenschenswert.net/wunschdenken/archives/118#comment-91</guid>
		<description>Great post!

Just my "two cents":

"The Undo/Redo stack is a perfect example of something that should NOT be done using closures."

I've never implemented it as such, however you can capture some common identity using lexical scope. You end up re-inventing OOP. I call this "greenspunning."

SICP is great for learning this kind of thing: it doesn't say "closures are better because they are powerful enough to express OOP," it says "you will understand OOP better if you understand how to build it out of more fundamental constructs."

I mentioned undo/redo to point out that OO is not just modeling things that are nouns in the real world. OO can model relationships, actions, all sorts of non-noun things. Undo and redo are examples. Session beans are examples.

My point about OO and first-class functions is that if you can wrap your mind about using an object to model a command or transaction, you can wrap your mind around using an object to model a function.

The rest of the debate, with respect to the "Kitchen Sink Language," concerns brevity of notation and access to variables in lexical scope.</description>
		<content:encoded><![CDATA[<p>Great post!</p>
<p>Just my &#8220;two cents&#8221;:</p>
<p>&#8220;The Undo/Redo stack is a perfect example of something that should NOT be done using closures.&#8221;</p>
<p>I&#8217;ve never implemented it as such, however you can capture some common identity using lexical scope. You end up re-inventing OOP. I call this &#8220;greenspunning.&#8221;</p>
<p>SICP is great for learning this kind of thing: it doesn&#8217;t say &#8220;closures are better because they are powerful enough to express OOP,&#8221; it says &#8220;you will understand OOP better if you understand how to build it out of more fundamental constructs.&#8221;</p>
<p>I mentioned undo/redo to point out that OO is not just modeling things that are nouns in the real world. OO can model relationships, actions, all sorts of non-noun things. Undo and redo are examples. Session beans are examples.</p>
<p>My point about OO and first-class functions is that if you can wrap your mind about using an object to model a command or transaction, you can wrap your mind around using an object to model a function.</p>
<p>The rest of the debate, with respect to the &#8220;Kitchen Sink Language,&#8221; concerns brevity of notation and access to variables in lexical scope.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
