<?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: Curry Functions</title>
	<atom:link href="http://jacksondunstan.com/articles/338/feed" rel="self" type="application/rss+xml" />
	<link>http://jacksondunstan.com/articles/338</link>
	<description>Mastering AS3</description>
	<lastBuildDate>Tue, 07 Feb 2012 09:30:08 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Just A Couple Of Useful Posts &#171; Deceptive Resolution</title>
		<link>http://jacksondunstan.com/articles/338/comment-page-1#comment-2985</link>
		<dc:creator>Just A Couple Of Useful Posts &#171; Deceptive Resolution</dc:creator>
		<pubDate>Sat, 15 Jan 2011 17:50:26 +0000</pubDate>
		<guid isPermaLink="false">http://jacksondunstan.com/?p=338#comment-2985</guid>
		<description>[...] Uncurrying Functions [...]</description>
		<content:encoded><![CDATA[<p>[...] Uncurrying Functions [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alan Shaw</title>
		<link>http://jacksondunstan.com/articles/338/comment-page-1#comment-480</link>
		<dc:creator>Alan Shaw</dc:creator>
		<pubDate>Sat, 30 Jan 2010 19:32:34 +0000</pubDate>
		<guid isPermaLink="false">http://jacksondunstan.com/?p=338#comment-480</guid>
		<description>Haha, I tend to think it&#039;s more natural for &quot;currying out,&quot; maybe because it reminds me of &quot;cull.&quot;  Of course the fun fact about it is that it&#039;s named after Haskell Curry, as is also the Haskell programming language!</description>
		<content:encoded><![CDATA[<p>Haha, I tend to think it&#8217;s more natural for &#8220;currying out,&#8221; maybe because it reminds me of &#8220;cull.&#8221;  Of course the fun fact about it is that it&#8217;s named after Haskell Curry, as is also the Haskell programming language!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jackson</title>
		<link>http://jacksondunstan.com/articles/338/comment-page-1#comment-479</link>
		<dc:creator>jackson</dc:creator>
		<pubDate>Sat, 30 Jan 2010 08:09:21 +0000</pubDate>
		<guid isPermaLink="false">http://jacksondunstan.com/?p=338#comment-479</guid>
		<description>You&#039;re right! I still like to use the term &quot;curry&quot; to refer to both adding and removing arguments. Like I said in the article, I like to express that as &quot;currying in&quot; and &quot;currying out&quot; arguments. Perhaps this is just me though. :)</description>
		<content:encoded><![CDATA[<p>You&#8217;re right! I still like to use the term &#8220;curry&#8221; to refer to both adding and removing arguments. Like I said in the article, I like to express that as &#8220;currying in&#8221; and &#8220;currying out&#8221; arguments. Perhaps this is just me though. :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alan Shaw</title>
		<link>http://jacksondunstan.com/articles/338/comment-page-1#comment-478</link>
		<dc:creator>Alan Shaw</dc:creator>
		<pubDate>Sat, 30 Jan 2010 06:14:47 +0000</pubDate>
		<guid isPermaLink="false">http://jacksondunstan.com/?p=338#comment-478</guid>
		<description>Very cool technique; just one thing though:  I believe this is not currying but uncurrying, as described in the Wikipedia entry you&#039;ve linked to!</description>
		<content:encoded><![CDATA[<p>Very cool technique; just one thing though:  I believe this is not currying but uncurrying, as described in the Wikipedia entry you&#8217;ve linked to!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jackson</title>
		<link>http://jacksondunstan.com/articles/338/comment-page-1#comment-82</link>
		<dc:creator>jackson</dc:creator>
		<pubDate>Mon, 28 Sep 2009 22:04:16 +0000</pubDate>
		<guid isPermaLink="false">http://jacksondunstan.com/?p=338#comment-82</guid>
		<description>These are good points. I remember the Delegate and Proxy classes in AS2, but I never used them because I had my own and there was no benefit to using Macromedia&#039;s version. Those are gone now in AS3 and I wonder how many programmers who started on AS3 never knew about them. This article is for anyone who wants to use this very effective and easy-to-use technique. I agree that commands (or &lt;a href=&quot;/articles/323&quot; rel=&quot;nofollow&quot;&gt;runnables&lt;/a&gt;) could be better, but I think of them as a more heavyweight approach as they require much more of an investment in terms of typing, class creation, allocation, and so forth. They do scale well though as you can use them throughout your code and have less memory overhead if you do. But for quickly adding on a parameter or two, nothing beats the convenience of curry.</description>
		<content:encoded><![CDATA[<p>These are good points. I remember the Delegate and Proxy classes in AS2, but I never used them because I had my own and there was no benefit to using Macromedia&#8217;s version. Those are gone now in AS3 and I wonder how many programmers who started on AS3 never knew about them. This article is for anyone who wants to use this very effective and easy-to-use technique. I agree that commands (or <a href="/articles/323" rel="nofollow">runnables</a>) could be better, but I think of them as a more heavyweight approach as they require much more of an investment in terms of typing, class creation, allocation, and so forth. They do scale well though as you can use them throughout your code and have less memory overhead if you do. But for quickly adding on a parameter or two, nothing beats the convenience of curry.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sandro Manke</title>
		<link>http://jacksondunstan.com/articles/338/comment-page-1#comment-81</link>
		<dc:creator>Sandro Manke</dc:creator>
		<pubDate>Mon, 28 Sep 2009 21:56:43 +0000</pubDate>
		<guid isPermaLink="false">http://jacksondunstan.com/?p=338#comment-81</guid>
		<description>one addition maybe, which i encounter quite often. I tend to start off my code like you do here but at some point i see, that i have some classes doing lots of the same stuff like this - by already using the ICommand pattern i can easily externalize this into a real command and kill all the remaining curry-calls which i then do not need anymore. you could also do this with runnables, but you&#039;d have to use them from the beginning. Basically its really just more about thinking &quot;i might wanna use this later on globally, but i dont care for now&quot;</description>
		<content:encoded><![CDATA[<p>one addition maybe, which i encounter quite often. I tend to start off my code like you do here but at some point i see, that i have some classes doing lots of the same stuff like this &#8211; by already using the ICommand pattern i can easily externalize this into a real command and kill all the remaining curry-calls which i then do not need anymore. you could also do this with runnables, but you&#8217;d have to use them from the beginning. Basically its really just more about thinking &#8220;i might wanna use this later on globally, but i dont care for now&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sandro Manke</title>
		<link>http://jacksondunstan.com/articles/338/comment-page-1#comment-80</link>
		<dc:creator>Sandro Manke</dc:creator>
		<pubDate>Mon, 28 Sep 2009 21:53:48 +0000</pubDate>
		<guid isPermaLink="false">http://jacksondunstan.com/?p=338#comment-80</guid>
		<description>Hey Jackson
your currying looks a lot like the &quot;delegate&quot; which was/is widely used and you&#039;re right - the delegate there is basically more a currying, than a delegate, but the name &quot;curry&quot; is maybe not so cool :)
btw, our CallbackCommand was a way of doing this currying easily the old way like here, but using the convenience, that we could also optimize this by using &quot;hand made&quot; commands, which will be completly typed.
one short example of doing this completely typed would be to make an XmlLoadedCommand(loadedCallback:ILoadedCallback,data:XML);which you&#039;ll hand over
your caller will then implement the Interface and this way you could call him using a real function, as it is defined in the interface. As this is not always convenient for &quot;small local code&quot; you might not want to do it always, but its a choice you&#039;ll have.

I&#039;d even go so far to extend this even more and put all the stuff into one(or more) commands. so your function
onPortraitLoaded(portrait:DisplayObject, student:XML): void
would actually be completly wrapped in the execute(); method of the command. 
it may seem strange but it helps giving out minimal interfaces and then doing the real work in &quot;workers&quot; which you can re-use later for a lot of objects. This also helps to keep your code small.</description>
		<content:encoded><![CDATA[<p>Hey Jackson<br />
your currying looks a lot like the &#8220;delegate&#8221; which was/is widely used and you&#8217;re right &#8211; the delegate there is basically more a currying, than a delegate, but the name &#8220;curry&#8221; is maybe not so cool :)<br />
btw, our CallbackCommand was a way of doing this currying easily the old way like here, but using the convenience, that we could also optimize this by using &#8220;hand made&#8221; commands, which will be completly typed.<br />
one short example of doing this completely typed would be to make an XmlLoadedCommand(loadedCallback:ILoadedCallback,data:XML);which you&#8217;ll hand over<br />
your caller will then implement the Interface and this way you could call him using a real function, as it is defined in the interface. As this is not always convenient for &#8220;small local code&#8221; you might not want to do it always, but its a choice you&#8217;ll have.</p>
<p>I&#8217;d even go so far to extend this even more and put all the stuff into one(or more) commands. so your function<br />
onPortraitLoaded(portrait:DisplayObject, student:XML): void<br />
would actually be completly wrapped in the execute(); method of the command.<br />
it may seem strange but it helps giving out minimal interfaces and then doing the real work in &#8220;workers&#8221; which you can re-use later for a lot of objects. This also helps to keep your code small.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

