<?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: Analyzing return values with a recursive macro</title>
	<atom:link href="http://blog.viridian-project.de/2008/04/12/analyzing-return-values-with-a-recursive-macro/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.viridian-project.de/2008/04/12/analyzing-return-values-with-a-recursive-macro/</link>
	<description>Leslie P. Polzer on code, music, literature, design and free software business.</description>
	<lastBuildDate>Fri, 09 Dec 2011 14:52:23 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Aaron Feng</title>
		<link>http://blog.viridian-project.de/2008/04/12/analyzing-return-values-with-a-recursive-macro/comment-page-1/#comment-1430</link>
		<dc:creator>Aaron Feng</dc:creator>
		<pubDate>Tue, 22 Apr 2008 17:23:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.viridian-project.de/?p=68#comment-1430</guid>
		<description>This is great!  I&#039;m tired of using format function for debugging.</description>
		<content:encoded><![CDATA[<p>This is great!  I&#8217;m tired of using format function for debugging.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Goldman</title>
		<link>http://blog.viridian-project.de/2008/04/12/analyzing-return-values-with-a-recursive-macro/comment-page-1/#comment-1351</link>
		<dc:creator>Robert Goldman</dc:creator>
		<pubDate>Sun, 13 Apr 2008 15:26:46 +0000</pubDate>
		<guid isPermaLink="false">http://blog.viridian-project.de/?p=68#comment-1351</guid>
		<description>One useful extension would be to augment the walker to handle forms that return multiple values....</description>
		<content:encoded><![CDATA[<p>One useful extension would be to augment the walker to handle forms that return multiple values&#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leslie</title>
		<link>http://blog.viridian-project.de/2008/04/12/analyzing-return-values-with-a-recursive-macro/comment-page-1/#comment-1344</link>
		<dc:creator>Leslie</dc:creator>
		<pubDate>Sat, 12 Apr 2008 20:30:31 +0000</pubDate>
		<guid isPermaLink="false">http://blog.viridian-project.de/?p=68#comment-1344</guid>
		<description>This is only a first stab, though. Problems will arise when macros are in the inspected body, and possibly also when special operators are involved.</description>
		<content:encoded><![CDATA[<p>This is only a first stab, though. Problems will arise when macros are in the inspected body, and possibly also when special operators are involved.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian</title>
		<link>http://blog.viridian-project.de/2008/04/12/analyzing-return-values-with-a-recursive-macro/comment-page-1/#comment-1343</link>
		<dc:creator>Brian</dc:creator>
		<pubDate>Sat, 12 Apr 2008 20:05:49 +0000</pubDate>
		<guid isPermaLink="false">http://blog.viridian-project.de/?p=68#comment-1343</guid>
		<description>Sometimes I wonder why I bother continuing to try to learn Lisp, then I read stuff like this.  This is really cool.</description>
		<content:encoded><![CDATA[<p>Sometimes I wonder why I bother continuing to try to learn Lisp, then I read stuff like this.  This is really cool.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leslie</title>
		<link>http://blog.viridian-project.de/2008/04/12/analyzing-return-values-with-a-recursive-macro/comment-page-1/#comment-1337</link>
		<dc:creator>Leslie</dc:creator>
		<pubDate>Sat, 12 Apr 2008 17:37:10 +0000</pubDate>
		<guid isPermaLink="false">http://blog.viridian-project.de/?p=68#comment-1337</guid>
		<description>TRACE only works for a specific function.

However, WALK could actually be designed to make use of trace.</description>
		<content:encoded><![CDATA[<p>TRACE only works for a specific function.</p>
<p>However, WALK could actually be designed to make use of trace.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sohail</title>
		<link>http://blog.viridian-project.de/2008/04/12/analyzing-return-values-with-a-recursive-macro/comment-page-1/#comment-1336</link>
		<dc:creator>Sohail</dc:creator>
		<pubDate>Sat, 12 Apr 2008 17:14:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog.viridian-project.de/?p=68#comment-1336</guid>
		<description>Hey,

Whats wrong with trace? Admittedly, I *hate* debugging so I try and write code that doesn&#039;t require it, but:

(defun foo (x)
           (if (eql x 0) &#039;done
               (list x (foo (1- x)))))

(trace foo)

(foo 5)
  0: (FOO 5)
    1: (FOO 4)
      2: (FOO 3)
        3: (FOO 2)
          4: (FOO 1)
            5: (FOO 0)
            5: FOO returned DONE
          4: FOO returned (1 DONE)
        3: FOO returned (2 (1 DONE))
      2: FOO returned (3 (2 (1 DONE)))
    1: FOO returned (4 (3 (2 (1 DONE))))
  0: FOO returned (5 (4 (3 (2 (1 DONE)))))</description>
		<content:encoded><![CDATA[<p>Hey,</p>
<p>Whats wrong with trace? Admittedly, I *hate* debugging so I try and write code that doesn&#8217;t require it, but:</p>
<p>(defun foo (x)<br />
           (if (eql x 0) &#8216;done<br />
               (list x (foo (1- x)))))</p>
<p>(trace foo)</p>
<p>(foo 5)<br />
  0: (FOO 5)<br />
    1: (FOO 4)<br />
      2: (FOO 3)<br />
        3: (FOO 2)<br />
          4: (FOO 1)<br />
            5: (FOO 0)<br />
            5: FOO returned DONE<br />
          4: FOO returned (1 DONE)<br />
        3: FOO returned (2 (1 DONE))<br />
      2: FOO returned (3 (2 (1 DONE)))<br />
    1: FOO returned (4 (3 (2 (1 DONE))))<br />
  0: FOO returned (5 (4 (3 (2 (1 DONE)))))</p>
]]></content:encoded>
	</item>
</channel>
</rss>

