<?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: Macros make Elvis better</title>
	<atom:link href="http://blogs.foognostic.net/2009/11/macros-make-elvis-better/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.foognostic.net/2009/11/macros-make-elvis-better/</link>
	<description>Seeking knowledge of foo</description>
	<lastBuildDate>Wed, 13 Jan 2010 14:49:16 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Seth Schroeder</title>
		<link>http://blogs.foognostic.net/2009/11/macros-make-elvis-better/comment-page-1/#comment-348</link>
		<dc:creator>Seth Schroeder</dc:creator>
		<pubDate>Mon, 16 Nov 2009 13:48:34 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.foognostic.net/?p=222#comment-348</guid>
		<description>&lt;p&gt;Apparently so! I hadn&#039;t thought about using (or) for some strange reason. It would be a bad (or) that didn&#039;t defer evaluation.&lt;/p&gt;

&lt;p&gt;It was fun trying to combine (or) and (def) with a macro. I&#039;m learning about macros slowly but don&#039;t understand why one of these works and the other fails:&lt;/p&gt;

&lt;p&gt;&lt;code lang=&quot;clojure&quot;&gt;
(defmacro ordef-happy [var t f]
  `(def ~var (or ~t ~f)))

(defmacro ordef-fale [var t f]
  (def var (or t f)))

user&gt; (def foo :UGH) (ordef-happy foo :bar :baz) foo
:bar
user&gt; (def foo :UGH) (ordef-fale foo :bar :baz) foo
:UGH
&lt;/code&gt;&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Apparently so! I hadn&#8217;t thought about using (or) for some strange reason. It would be a bad (or) that didn&#8217;t defer evaluation.</p>

<p>It was fun trying to combine (or) and (def) with a macro. I&#8217;m learning about macros slowly but don&#8217;t understand why one of these works and the other fails:</p>

<p>

<div class="codecolorer-container clojure vibrant" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="clojure codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">defmacro</span> ordef-happy <span style="color: #66cc66;">&#91;</span><span style="color: #b1b100;">var</span> t f<span style="color: #66cc66;">&#93;</span><br />
&nbsp; `<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">def</span> ~<span style="color: #b1b100;">var</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">or</span> ~t ~f<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">defmacro</span> ordef-fale <span style="color: #66cc66;">&#91;</span><span style="color: #b1b100;">var</span> t f<span style="color: #66cc66;">&#93;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">def</span> <span style="color: #b1b100;">var</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">or</span> t f<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
user&gt; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">def</span> foo :UGH<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>ordef-happy foo :bar :baz<span style="color: #66cc66;">&#41;</span> foo<br />
:bar<br />
user&gt; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">def</span> foo :UGH<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>ordef-fale foo :bar :baz<span style="color: #66cc66;">&#41;</span> foo<br />
:UGH</div></div>

</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Glen</title>
		<link>http://blogs.foognostic.net/2009/11/macros-make-elvis-better/comment-page-1/#comment-345</link>
		<dc:creator>Glen</dc:creator>
		<pubDate>Mon, 16 Nov 2009 07:02:11 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.foognostic.net/?p=222#comment-345</guid>
		<description>&lt;p&gt;Is that just the same as writing:&lt;/p&gt;

&lt;p&gt;(or (nap 123) (nap 456))&lt;/p&gt;

&lt;p&gt;?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Is that just the same as writing:</p>

<p>(or (nap 123) (nap 456))</p>

<p>?</p>]]></content:encoded>
	</item>
</channel>
</rss>
