<?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>Comments on: SICP sections 4.4.2 - 4.4.4</title>
	<atom:link href="http://eli.thegreenplace.net/2008/02/09/sicp-sections-442-444/feed/" rel="self" type="application/rss+xml" />
	<link>http://eli.thegreenplace.net/2008/02/09/sicp-sections-442-444/</link>
	<description>Eli Bendersky's personal website</description>
	<pubDate>Fri, 21 Nov 2008 21:34:56 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: kkwweett</title>
		<link>http://eli.thegreenplace.net/2008/02/09/sicp-sections-442-444/#comment-116097</link>
		<dc:creator>kkwweett</dc:creator>
		<pubDate>Sun, 16 Mar 2008 15:03:48 +0000</pubDate>
		<guid isPermaLink="false">http://eli.thegreenplace.net/2008/02/09/sicp-sections-442-444/#comment-116097</guid>
		<description>In exercise  4.69, the ends-with-grandson rule can also be designed with the reverse rule that was just constructed in exercise 4.68 :

(rule (ends-with ?somelist ?somepair)
  (and   (reverse (?car . ?cdr) ?somelist)
           (same ?car ?sompair)))

which hasn't got the drawback of converting somepair to a list.</description>
		<content:encoded><![CDATA[<p>In exercise  4.69, the ends-with-grandson rule can also be designed with the reverse rule that was just constructed in exercise 4.68 :</p>
<p>(rule (ends-with ?somelist ?somepair)<br />
  (and   (reverse (?car . ?cdr) ?somelist)<br />
           (same ?car ?sompair)))</p>
<p>which hasn&#8217;t got the drawback of converting somepair to a list.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: eliben</title>
		<link>http://eli.thegreenplace.net/2008/02/09/sicp-sections-442-444/#comment-108784</link>
		<dc:creator>eliben</dc:creator>
		<pubDate>Sun, 10 Feb 2008 04:01:47 +0000</pubDate>
		<guid isPermaLink="false">http://eli.thegreenplace.net/2008/02/09/sicp-sections-442-444/#comment-108784</guid>
		<description>Flávio, you're absolutely right. I will incorporate your answer. Thanks.</description>
		<content:encoded><![CDATA[<p>Flávio, you&#8217;re absolutely right. I will incorporate your answer. Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Flávio Cruz</title>
		<link>http://eli.thegreenplace.net/2008/02/09/sicp-sections-442-444/#comment-108557</link>
		<dc:creator>Flávio Cruz</dc:creator>
		<pubDate>Sat, 09 Feb 2008 18:43:56 +0000</pubDate>
		<guid isPermaLink="false">http://eli.thegreenplace.net/2008/02/09/sicp-sections-442-444/#comment-108557</guid>
		<description>In exercise 4.71 there are some queries that behave quite differently in those two implementations.

For example in the simple-query, if you use these assertions:

(dummy a)
(dummy b)
(dummy c)
(rule (dummy ?x)
        (dummy ?x))

In the "delayed" implementation, the driver loop keeps printing answers (indefinitely), on the other hand without the delay the query system doesn't print anything, because it's trying to satisfy the recursive rule.

For disjoint the same observations apply:

(rule (dummy-2 ?x)
        (or (job ?x ?a)
        (dummy-2 ?x)))</description>
		<content:encoded><![CDATA[<p>In exercise 4.71 there are some queries that behave quite differently in those two implementations.</p>
<p>For example in the simple-query, if you use these assertions:</p>
<p>(dummy a)<br />
(dummy b)<br />
(dummy c)<br />
(rule (dummy ?x)<br />
        (dummy ?x))</p>
<p>In the &#8220;delayed&#8221; implementation, the driver loop keeps printing answers (indefinitely), on the other hand without the delay the query system doesn&#8217;t print anything, because it&#8217;s trying to satisfy the recursive rule.</p>
<p>For disjoint the same observations apply:</p>
<p>(rule (dummy-2 ?x)<br />
        (or (job ?x ?a)<br />
        (dummy-2 ?x)))</p>
]]></content:encoded>
	</item>
</channel>
</rss>
