<?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: 2+2=4</title>
	<atom:link href="http://www.e-pig.org/epilogue/?feed=rss2&#038;p=266" rel="self" type="application/rss+xml" />
	<link>http://www.e-pig.org/epilogue/?p=266</link>
	<description>for Epigram</description>
	<lastBuildDate>Sun,  6 Nov 2011 09:25:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Adam</title>
		<link>http://www.e-pig.org/epilogue/?p=266&#038;cpage=1#comment-70851</link>
		<dc:creator>Adam</dc:creator>
		<pubDate>Mon, 21 Dec 2009 15:31:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.e-pig.org/epilogue/?p=266#comment-70851</guid>
		<description>Thanks to some minor fixes and additions today, it is now possible to define the natural numbers from scratch in the Cochon interactive environment, thus:

&lt;code&gt;make nat := (Mu @ [`arg { zero, suc } [ (@ [`done]) (@ [`ind1 @ [`done]]) ] ] ) : * ;
make zero := @ [`zero] : nat ;
make suc := (\ x -&gt; @ [`suc x]) : nat -&gt; nat ;
make one := (suc zero) : nat ;
make two := (suc one) : nat ;
make plus := @ @ [(\ r r y -&gt; y) (\ r -&gt; @ \ h r y -&gt; suc (h y))] : nat -&gt; nat -&gt; nat ;
make x := (plus two two) : nat&lt;/code&gt;

As Conor said, we&#039;re a little way from high-level code at the moment...

Adam</description>
		<content:encoded><![CDATA[<p>Thanks to some minor fixes and additions today, it is now possible to define the natural numbers from scratch in the Cochon interactive environment, thus:</p>
<p><code>make nat := (Mu @ [`arg { zero, suc } [ (@ [`done]) (@ [`ind1 @ [`done]]) ] ] ) : * ;<br />
make zero := @ [`zero] : nat ;<br />
make suc := (\ x -&gt; @ [`suc x]) : nat -&gt; nat ;<br />
make one := (suc zero) : nat ;<br />
make two := (suc one) : nat ;<br />
make plus := @ @ [(\ r r y -&gt; y) (\ r -&gt; @ \ h r y -&gt; suc (h y))] : nat -&gt; nat -&gt; nat ;<br />
make x := (plus two two) : nat</code></p>
<p>As Conor said, we&#8217;re a little way from high-level code at the moment&#8230;</p>
<p>Adam</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Conor</title>
		<link>http://www.e-pig.org/epilogue/?p=266&#038;cpage=1#comment-70845</link>
		<dc:creator>Conor</dc:creator>
		<pubDate>Fri, 18 Dec 2009 22:02:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.e-pig.org/epilogue/?p=266#comment-70845</guid>
		<description>Hi Sjoerd! We&#039;re just tweaking things a bit. Today, we dumped our hardwired type of datatype descriptions: it has a description itself, so we can use quite a lot (not all -- bootstrapping issues) of the generic machinery even for the machinery of generics. Once we&#039;ve completed this levitation trick (if you really stare, you can see the wires), we&#039;ll blog in more detail. Note that we&#039;re nowhere near any kind of tasteful high-level code yet: just now, we have only core gore, where more is more!

Meanwhile, for code of another kind, the literate implementation can always be found in the Epitome (in the sidebar of the front page).

(Peter, is the repo available over http? You never know, intrepid people might like to poke about with it.)</description>
		<content:encoded><![CDATA[<p>Hi Sjoerd! We&#8217;re just tweaking things a bit. Today, we dumped our hardwired type of datatype descriptions: it has a description itself, so we can use quite a lot (not all &#8212; bootstrapping issues) of the generic machinery even for the machinery of generics. Once we&#8217;ve completed this levitation trick (if you really stare, you can see the wires), we&#8217;ll blog in more detail. Note that we&#8217;re nowhere near any kind of tasteful high-level code yet: just now, we have only core gore, where more is more!</p>
<p>Meanwhile, for code of another kind, the literate implementation can always be found in the Epitome (in the sidebar of the front page).</p>
<p>(Peter, is the repo available over http? You never know, intrepid people might like to poke about with it.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sjoerd Visscher</title>
		<link>http://www.e-pig.org/epilogue/?p=266&#038;cpage=1#comment-70841</link>
		<dc:creator>Sjoerd Visscher</dc:creator>
		<pubDate>Thu, 17 Dec 2009 12:32:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.e-pig.org/epilogue/?p=266#comment-70841</guid>
		<description>Can you show some code? I&#039;m really curious now.</description>
		<content:encoded><![CDATA[<p>Can you show some code? I&#8217;m really curious now.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
