<?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: Selectors as Blocks</title>
	<atom:link href="http://blog.3plus4.org/2007/03/27/selectors-as-blocks/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.3plus4.org/2007/03/27/selectors-as-blocks/</link>
	<description>The neighbourhood of 7</description>
	<lastBuildDate>Fri, 03 Sep 2010 02:00:37 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: For.example &#187; Blog Archive &#187; Cyclomatic Complexity in Languages with Closures</title>
		<link>http://blog.3plus4.org/2007/03/27/selectors-as-blocks/comment-page-1/#comment-1736</link>
		<dc:creator>For.example &#187; Blog Archive &#187; Cyclomatic Complexity in Languages with Closures</dc:creator>
		<pubDate>Wed, 11 Nov 2009 12:08:53 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3plus4.org/2007/03/27/selectors-as-blocks/#comment-1736</guid>
		<description>[...] if you are using selectors as blocks you might even get multiple path without a block, as for [...]</description>
		<content:encoded><![CDATA[<p>[...] if you are using selectors as blocks you might even get multiple path without a block, as for [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adrian</title>
		<link>http://blog.3plus4.org/2007/03/27/selectors-as-blocks/comment-page-1/#comment-1735</link>
		<dc:creator>Adrian</dc:creator>
		<pubDate>Wed, 11 Nov 2009 09:38:58 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3plus4.org/2007/03/27/selectors-as-blocks/#comment-1735</guid>
		<description>Cool stuff Vassili. You might even use the compiler to get rid of the manual #perform: in the blocks and thus speed up loops. Also nice is to use the same for sort blocks, 


Symbol &gt;&gt; asSortBlock
	&quot;Answer a sort block, which evaluates this symbol for both arguments
	and compares the resulting values&quot;
	&#124; stream &#124;
	stream := (String new: self size * 2 + 14) writeStream.
	stream 
		nextPutAll: &#039;[:a :b&#124;a &#039;;
		nextPutAll: self;
		nextPutAll: &#039;&lt;=b &#039;;
		nextPutAll: self;
		nextPut: $].
	^Compiler evaluate: stream contents
</description>
		<content:encoded><![CDATA[<p>Cool stuff Vassili. You might even use the compiler to get rid of the manual #perform: in the blocks and thus speed up loops. Also nice is to use the same for sort blocks, </p>
<p>Symbol &gt;&gt; asSortBlock<br />
	&#8220;Answer a sort block, which evaluates this symbol for both arguments<br />
	and compares the resulting values&#8221;<br />
	| stream |<br />
	stream := (String new: self size * 2 + 14) writeStream.<br />
	stream<br />
		nextPutAll: &#8216;[:a :b|a ';<br />
		nextPutAll: self;<br />
		nextPutAll: '&lt;=b ';<br />
		nextPutAll: self;<br />
		nextPut: $].<br />
	^Compiler evaluate: stream contents</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Travis Griggs</title>
		<link>http://blog.3plus4.org/2007/03/27/selectors-as-blocks/comment-page-1/#comment-16</link>
		<dc:creator>Travis Griggs</dc:creator>
		<pubDate>Wed, 28 Mar 2007 17:57:35 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3plus4.org/2007/03/27/selectors-as-blocks/#comment-16</guid>
		<description>That&#039;s cool Vassili. I still like the simplicity of Symbol&gt;&gt;value of course. But I like the asBlock pattern for the bigger items. Thogh I use them less.

You rightly point out that it gets us around the code that &quot;checks&quot; for numArgs. To me, this is where the real fault lies at though. The numArgs API is ambiguous based on the intended use as an either a selector or an evaluator.</description>
		<content:encoded><![CDATA[<p>That&#8217;s cool Vassili. I still like the simplicity of Symbol&gt;&gt;value of course. But I like the asBlock pattern for the bigger items. Thogh I use them less.</p>
<p>You rightly point out that it gets us around the code that &#8220;checks&#8221; for numArgs. To me, this is where the real fault lies at though. The numArgs API is ambiguous based on the intended use as an either a selector or an evaluator.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vassili Bykov</title>
		<link>http://blog.3plus4.org/2007/03/27/selectors-as-blocks/comment-page-1/#comment-15</link>
		<dc:creator>Vassili Bykov</dc:creator>
		<pubDate>Wed, 28 Mar 2007 16:52:51 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3plus4.org/2007/03/27/selectors-as-blocks/#comment-15</guid>
		<description>Sure, but that doesn&#039;t solve the problem of numArgs breaking the illusion.</description>
		<content:encoded><![CDATA[<p>Sure, but that doesn&#8217;t solve the problem of numArgs breaking the illusion.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alan Knight</title>
		<link>http://blog.3plus4.org/2007/03/27/selectors-as-blocks/comment-page-1/#comment-14</link>
		<dc:creator>Alan Knight</dc:creator>
		<pubDate>Wed, 28 Mar 2007 16:20:32 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3plus4.org/2007/03/27/selectors-as-blocks/#comment-14</guid>
		<description>I don&#039;t understand why this is better than Symbol&gt;&gt;value: for multiple-argument selectors. It seems to me that you can do exactly the same thing by implementing Symbol&gt;&gt;value:value:</description>
		<content:encoded><![CDATA[<p>I don&#8217;t understand why this is better than Symbol&gt;&gt;value: for multiple-argument selectors. It seems to me that you can do exactly the same thing by implementing Symbol&gt;&gt;value:value:</p>
]]></content:encoded>
	</item>
</channel>
</rss>
