<?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: A kind of magic</title>
	<atom:link href="http://blog.viridian-project.de/2008/05/01/a-kind-of-magic/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.viridian-project.de/2008/05/01/a-kind-of-magic/</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: Alex Ott</title>
		<link>http://blog.viridian-project.de/2008/05/01/a-kind-of-magic/comment-page-1/#comment-2906</link>
		<dc:creator>Alex Ott</dc:creator>
		<pubDate>Thu, 29 May 2008 11:59:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.viridian-project.de/?p=72#comment-2906</guid>
		<description>You can also use libmagic via ffi? I think, that it will return more information, then your own code</description>
		<content:encoded><![CDATA[<p>You can also use libmagic via ffi? I think, that it will return more information, then your own code</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Loop</title>
		<link>http://blog.viridian-project.de/2008/05/01/a-kind-of-magic/comment-page-1/#comment-1865</link>
		<dc:creator>Loop</dc:creator>
		<pubDate>Tue, 20 May 2008 12:09:34 +0000</pubDate>
		<guid isPermaLink="false">http://blog.viridian-project.de/?p=72#comment-1865</guid>
		<description>Check out the thereis loop clause for your any-predicate macro.</description>
		<content:encoded><![CDATA[<p>Check out the thereis loop clause for your any-predicate macro.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leslie</title>
		<link>http://blog.viridian-project.de/2008/05/01/a-kind-of-magic/comment-page-1/#comment-1467</link>
		<dc:creator>Leslie</dc:creator>
		<pubDate>Fri, 02 May 2008 09:07:33 +0000</pubDate>
		<guid isPermaLink="false">http://blog.viridian-project.de/?p=72#comment-1467</guid>
		<description>Fixed, thanks.</description>
		<content:encoded><![CDATA[<p>Fixed, thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: foo</title>
		<link>http://blog.viridian-project.de/2008/05/01/a-kind-of-magic/comment-page-1/#comment-1466</link>
		<dc:creator>foo</dc:creator>
		<pubDate>Fri, 02 May 2008 07:34:45 +0000</pubDate>
		<guid isPermaLink="false">http://blog.viridian-project.de/?p=72#comment-1466</guid>
		<description>You did not change it correctly. You need to do (LOOP FOR CHARACTER ACROSS STRING ... ). ACROSS not in.

Also in the Macro the GENSYM is not needed. 

Just use   `(or ,@(loop for p in preds collect `(,p ,@args))))  as the body. The GENSYM would be needed, if your macro wants to introduce new symbols into the code. But it does not do that.</description>
		<content:encoded><![CDATA[<p>You did not change it correctly. You need to do (LOOP FOR CHARACTER ACROSS STRING &#8230; ). ACROSS not in.</p>
<p>Also in the Macro the GENSYM is not needed. </p>
<p>Just use   `(or ,@(loop for p in preds collect `(,p ,@args))))  as the body. The GENSYM would be needed, if your macro wants to introduce new symbols into the code. But it does not do that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leslie</title>
		<link>http://blog.viridian-project.de/2008/05/01/a-kind-of-magic/comment-page-1/#comment-1465</link>
		<dc:creator>Leslie</dc:creator>
		<pubDate>Fri, 02 May 2008 06:53:38 +0000</pubDate>
		<guid isPermaLink="false">http://blog.viridian-project.de/?p=72#comment-1465</guid>
		<description>foo, thanks for your help. I added your simplifications to the code.</description>
		<content:encoded><![CDATA[<p>foo, thanks for your help. I added your simplifications to the code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: foo</title>
		<link>http://blog.viridian-project.de/2008/05/01/a-kind-of-magic/comment-page-1/#comment-1460</link>
		<dc:creator>foo</dc:creator>
		<pubDate>Thu, 01 May 2008 16:16:14 +0000</pubDate>
		<guid isPermaLink="false">http://blog.viridian-project.de/?p=72#comment-1460</guid>
		<description>also check out:

(some (lambda (pred) (funcall pred file)) &#039;(jpeg-p png-p gif-p))</description>
		<content:encoded><![CDATA[<p>also check out:</p>
<p>(some (lambda (pred) (funcall pred file)) &#8216;(jpeg-p png-p gif-p))</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: foo</title>
		<link>http://blog.viridian-project.de/2008/05/01/a-kind-of-magic/comment-page-1/#comment-1459</link>
		<dc:creator>foo</dc:creator>
		<pubDate>Thu, 01 May 2008 16:10:23 +0000</pubDate>
		<guid isPermaLink="false">http://blog.viridian-project.de/?p=72#comment-1459</guid>
		<description>You also don&#039;t need to coerce the string to a list.

Use (loop for character across string ... )</description>
		<content:encoded><![CDATA[<p>You also don&#8217;t need to coerce the string to a list.</p>
<p>Use (loop for character across string &#8230; )</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: foo</title>
		<link>http://blog.viridian-project.de/2008/05/01/a-kind-of-magic/comment-page-1/#comment-1457</link>
		<dc:creator>foo</dc:creator>
		<pubDate>Thu, 01 May 2008 16:07:59 +0000</pubDate>
		<guid isPermaLink="false">http://blog.viridian-project.de/?p=72#comment-1457</guid>
		<description>You also don&#039;t need `(funcall (function ,p) ,@args) .

`(,p ,@args) is fine.

Anyway it is better not to use a macro.</description>
		<content:encoded><![CDATA[<p>You also don&#8217;t need `(funcall (function ,p) ,@args) .</p>
<p>`(,p ,@args) is fine.</p>
<p>Anyway it is better not to use a macro.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leslie</title>
		<link>http://blog.viridian-project.de/2008/05/01/a-kind-of-magic/comment-page-1/#comment-1456</link>
		<dc:creator>Leslie</dc:creator>
		<pubDate>Thu, 01 May 2008 13:30:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.viridian-project.de/?p=72#comment-1456</guid>
		<description>Thanks for the remark on function designators.

I&#039;m not sure why I passed a zero for EOF-ERROR-P (I wrote this some weeks ago), but it certainly is a mistake.</description>
		<content:encoded><![CDATA[<p>Thanks for the remark on function designators.</p>
<p>I&#8217;m not sure why I passed a zero for EOF-ERROR-P (I wrote this some weeks ago), but it certainly is a mistake.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zach Beane</title>
		<link>http://blog.viridian-project.de/2008/05/01/a-kind-of-magic/comment-page-1/#comment-1455</link>
		<dc:creator>Zach Beane</dc:creator>
		<pubDate>Thu, 01 May 2008 13:14:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.viridian-project.de/?p=72#comment-1455</guid>
		<description>You don&#039;t need to use SYMBOL-FUNCTION. A symbol is a valid function designator. You could make the call like this:

(any-predicate &#039;(jpeg-p pnng-p gif-p exif-p) file)

The macro is really quite unnecessary.

Why did you pass 0 as EOF-ERROR-P in READ-BYTE?</description>
		<content:encoded><![CDATA[<p>You don&#8217;t need to use SYMBOL-FUNCTION. A symbol is a valid function designator. You could make the call like this:</p>
<p>(any-predicate &#8216;(jpeg-p pnng-p gif-p exif-p) file)</p>
<p>The macro is really quite unnecessary.</p>
<p>Why did you pass 0 as EOF-ERROR-P in READ-BYTE?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

