<?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: Brian&#8217;s (Purely) Functional Brain</title>
	<atom:link href="http://blog.willdonnelly.net/2009/10/14/brians-purely-functional-brain/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.willdonnelly.net/2009/10/14/brians-purely-functional-brain/</link>
	<description>Coding, Mostly</description>
	<lastBuildDate>Sun, 29 Aug 2010 20:08:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Noah Easterly</title>
		<link>http://blog.willdonnelly.net/2009/10/14/brians-purely-functional-brain/comment-page-1/#comment-86</link>
		<dc:creator>Noah Easterly</dc:creator>
		<pubDate>Fri, 04 Jun 2010 21:14:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.willdonnelly.net/?p=293#comment-86</guid>
		<description>I think your implementation of clip has some bugs:
[cce_haskell]
&gt;         clip max val &#124; val
&gt;                      &#124; val &gt; max = clip max $ val - max + 1
&gt;                      &#124; otherwise = val
&gt;
&gt;         -- so case by case
&gt;         clip max (-1) = max - 2
&gt;         clip max 0 = max - 1
&gt;         clip max 1 = 1
&gt;         clip max 2 = 2
&gt;         -- ...
&gt;         clip max (max-1) = max - 1
&gt;         clip max max = max
&gt;         clip max (max + 1) = 2
&gt;         clip max (max + 2) = 3
&gt;
[/cce_haskell]
So when we wraparound to the nonpositive, we never get a value of max, and when we wrap around past max, we never get a value of 1.

Fixing it is pretty easy though:
[cce_haskell]
&gt;         clip max val &#124; val
&gt;                      &#124; val &gt; max = clip max $ val - max
&gt;                      &#124; otherwise = val
&gt;
&gt;         -- so case by case
&gt;         clip max (-1) = max - 1
&gt;         clip max 0 = max
&gt;         clip max 1 = 1
&gt;         clip max 2 = 2
&gt;         -- ...
&gt;         clip max (max-1) = max - 1
&gt;         clip max max = max
&gt;         clip max (max + 1) = 1
&gt;         clip max (max + 2) = 2
&gt;
[/cce_haskell]</description>
		<content:encoded><![CDATA[<p>I think your implementation of clip has some bugs:</p>
<div class="codecolorer-container haskell default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="haskell codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> val <span style="color: #339933; font-weight: bold;">|</span> val<br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #339933; font-weight: bold;">|</span> val <span style="color: #339933; font-weight: bold;">&gt;</span> <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: #339933; font-weight: bold;">=</span> clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: #339933; font-weight: bold;">$</span> val <span style="color: #339933; font-weight: bold;">-</span> <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: #339933; font-weight: bold;">+</span> <span style="color: red;">1</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #339933; font-weight: bold;">|</span> <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:otherwise"><span style="font-weight: bold;">otherwise</span></a> <span style="color: #339933; font-weight: bold;">=</span> val<br />
<span style="color: #339933; font-weight: bold;">&gt;</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #5d478b; font-style: italic;">-- so case by case</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: green;">&#40;</span><span style="color: #339933; font-weight: bold;">-</span><span style="color: red;">1</span><span style="color: green;">&#41;</span> <span style="color: #339933; font-weight: bold;">=</span> <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: #339933; font-weight: bold;">-</span> <span style="color: red;">2</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: red;">0</span> <span style="color: #339933; font-weight: bold;">=</span> <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: #339933; font-weight: bold;">-</span> <span style="color: red;">1</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: red;">1</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: red;">1</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: red;">2</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: red;">2</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #5d478b; font-style: italic;">-- ...</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: green;">&#40;</span>max<span style="color: #339933; font-weight: bold;">-</span><span style="color: red;">1</span><span style="color: green;">&#41;</span> <span style="color: #339933; font-weight: bold;">=</span> <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: #339933; font-weight: bold;">-</span> <span style="color: red;">1</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: #339933; font-weight: bold;">=</span> <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: green;">&#40;</span><a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: #339933; font-weight: bold;">+</span> <span style="color: red;">1</span><span style="color: green;">&#41;</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: red;">2</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: green;">&#40;</span><a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: #339933; font-weight: bold;">+</span> <span style="color: red;">2</span><span style="color: green;">&#41;</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: red;">3</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span></div></div>
<p>So when we wraparound to the nonpositive, we never get a value of max, and when we wrap around past max, we never get a value of 1.</p>
<p>Fixing it is pretty easy though:</p>
<div class="codecolorer-container haskell default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="haskell codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> val <span style="color: #339933; font-weight: bold;">|</span> val<br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #339933; font-weight: bold;">|</span> val <span style="color: #339933; font-weight: bold;">&gt;</span> <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: #339933; font-weight: bold;">=</span> clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: #339933; font-weight: bold;">$</span> val <span style="color: #339933; font-weight: bold;">-</span> <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #339933; font-weight: bold;">|</span> <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:otherwise"><span style="font-weight: bold;">otherwise</span></a> <span style="color: #339933; font-weight: bold;">=</span> val<br />
<span style="color: #339933; font-weight: bold;">&gt;</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #5d478b; font-style: italic;">-- so case by case</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: green;">&#40;</span><span style="color: #339933; font-weight: bold;">-</span><span style="color: red;">1</span><span style="color: green;">&#41;</span> <span style="color: #339933; font-weight: bold;">=</span> <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: #339933; font-weight: bold;">-</span> <span style="color: red;">1</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: red;">0</span> <span style="color: #339933; font-weight: bold;">=</span> <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: red;">1</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: red;">1</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: red;">2</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: red;">2</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #5d478b; font-style: italic;">-- ...</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: green;">&#40;</span>max<span style="color: #339933; font-weight: bold;">-</span><span style="color: red;">1</span><span style="color: green;">&#41;</span> <span style="color: #339933; font-weight: bold;">=</span> <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: #339933; font-weight: bold;">-</span> <span style="color: red;">1</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: #339933; font-weight: bold;">=</span> <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: green;">&#40;</span><a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: #339933; font-weight: bold;">+</span> <span style="color: red;">1</span><span style="color: green;">&#41;</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: red;">1</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; clip <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: green;">&#40;</span><a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:max"><span style="font-weight: bold;">max</span></a> <span style="color: #339933; font-weight: bold;">+</span> <span style="color: red;">2</span><span style="color: green;">&#41;</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: red;">2</span><br />
<span style="color: #339933; font-weight: bold;">&gt;</span></div></div>
]]></content:encoded>
	</item>
	<item>
		<title>By: Noah Easterly</title>
		<link>http://blog.willdonnelly.net/2009/10/14/brians-purely-functional-brain/comment-page-1/#comment-85</link>
		<dc:creator>Noah Easterly</dc:creator>
		<pubDate>Fri, 04 Jun 2010 20:12:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.willdonnelly.net/?p=293#comment-85</guid>
		<description>I think your implementation of clip has some bugs:
&lt;code&gt;
         clip max val &#124; val  max = clip max $ val - max + 1
                      &#124; otherwise = val

         -- so case by case
         clip max (-1) = max - 2
         clip max 0 = max - 1
         clip max 1 = 1
         clip max 2 = 2
         -- ...
         clip max (max-1) = max - 1
         clip max max = max
         clip max (max + 1) = 2
         clip max (max + 2) = 3
&lt;/code&gt;
So when we wraparound to the nonpositive, we never get a value of max, and when we wrap around past max, we never get a value of 1.

Fixing it is pretty easy though:
&lt;code&gt;
         clip max val &#124; val  max = clip max $ val - max
                      &#124; otherwise = val

         -- so case by case
         clip max (-1) = max - 1
         clip max 0 = max
         clip max 1 = 1
         clip max 2 = 2
         -- ...
         clip max (max-1) = max - 1
         clip max max = max
         clip max (max + 1) = 1
         clip max (max + 2) = 2
&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p>I think your implementation of clip has some bugs:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clip max val | val &nbsp;max = clip max $ val - max + 1<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | otherwise = val<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-- so case by case<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clip max (-1) = max - 2<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clip max 0 = max - 1<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clip max 1 = 1<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clip max 2 = 2<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-- ...<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clip max (max-1) = max - 1<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clip max max = max<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clip max (max + 1) = 2<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clip max (max + 2) = 3</div></div>
<p>So when we wraparound to the nonpositive, we never get a value of max, and when we wrap around past max, we never get a value of 1.</p>
<p>Fixing it is pretty easy though:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clip max val | val &nbsp;max = clip max $ val - max<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | otherwise = val<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-- so case by case<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clip max (-1) = max - 1<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clip max 0 = max<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clip max 1 = 1<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clip max 2 = 2<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-- ...<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clip max (max-1) = max - 1<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clip max max = max<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clip max (max + 1) = 1<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clip max (max + 2) = 2</div></div>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephen Mann</title>
		<link>http://blog.willdonnelly.net/2009/10/14/brians-purely-functional-brain/comment-page-1/#comment-84</link>
		<dc:creator>Stephen Mann</dc:creator>
		<pubDate>Tue, 16 Feb 2010 04:51:24 +0000</pubDate>
		<guid isPermaLink="false">http://blog.willdonnelly.net/?p=293#comment-84</guid>
		<description>I hadn&#039;t come across xmonad before.  It looks awesome!  Thanks for sharing.

I&#039;ve been using this (http://stephenmann.net/2009/11/24/vim-is-my-grails-ide/) trick to interact with the terminal from gvim.  It&#039;s a rip off Jonathan Palardy&#039;s SLIME trick (http://technotales.wordpress.com/2007/10/03/like-slime-for-vim/).

I&#039;ve recently been looking into emacs, looking for better editor/terminal interaction than a screen hack.  But I&#039;ve been using vi so long, I don&#039;t know if I can (or really want) to make the switch.

Maybe xmonad will make switching apps so fast, it won&#039;t matter that there&#039;s no direct interaction.</description>
		<content:encoded><![CDATA[<p>I hadn&#8217;t come across xmonad before.  It looks awesome!  Thanks for sharing.</p>
<p>I&#8217;ve been using this (<a href="http://stephenmann.net/2009/11/24/vim-is-my-grails-ide/" rel="nofollow">http://stephenmann.net/2009/11/24/vim-is-my-grails-ide/</a>) trick to interact with the terminal from gvim.  It&#8217;s a rip off Jonathan Palardy&#8217;s SLIME trick (<a href="http://technotales.wordpress.com/2007/10/03/like-slime-for-vim/" rel="nofollow">http://technotales.wordpress.com/2007/10/03/like-slime-for-vim/</a>).</p>
<p>I&#8217;ve recently been looking into emacs, looking for better editor/terminal interaction than a screen hack.  But I&#8217;ve been using vi so long, I don&#8217;t know if I can (or really want) to make the switch.</p>
<p>Maybe xmonad will make switching apps so fast, it won&#8217;t matter that there&#8217;s no direct interaction.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Will Donnelly</title>
		<link>http://blog.willdonnelly.net/2009/10/14/brians-purely-functional-brain/comment-page-1/#comment-83</link>
		<dc:creator>Will Donnelly</dc:creator>
		<pubDate>Tue, 16 Feb 2010 01:38:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.willdonnelly.net/?p=293#comment-83</guid>
		<description>I&#039;m not running gvim, I&#039;m running vim with the csapprox plugin to support 256-color themes, and xmonad handles tiling the three xterms for me.

I&#039;ve found that setup tends to be the best for my development workflow. I keep the source code I&#039;m currently working on in the left half of the screen, and then the right side is given over to any other tools I happen to need.</description>
		<content:encoded><![CDATA[<p>I&#8217;m not running gvim, I&#8217;m running vim with the csapprox plugin to support 256-color themes, and xmonad handles tiling the three xterms for me.</p>
<p>I&#8217;ve found that setup tends to be the best for my development workflow. I keep the source code I&#8217;m currently working on in the left half of the screen, and then the right side is given over to any other tools I happen to need.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephen Mann</title>
		<link>http://blog.willdonnelly.net/2009/10/14/brians-purely-functional-brain/comment-page-1/#comment-82</link>
		<dc:creator>Stephen Mann</dc:creator>
		<pubDate>Mon, 15 Feb 2010 23:57:38 +0000</pubDate>
		<guid isPermaLink="false">http://blog.willdonnelly.net/?p=293#comment-82</guid>
		<description>Great job on the awesome program!

That&#039;s a beautiful screenshot.  How did you manage the screenshot -- getting gvim and a terminal running side-by-side like that?  I first thought screen with regions, but then you wouldn&#039;t get the colors.  Then I thought emacs in viper-mode, but then you wouldn&#039;t get the ~&#039;s down the left side.

I&#039;m looking around for a good haskell IDE, so this question is about more than simple aesthetics.</description>
		<content:encoded><![CDATA[<p>Great job on the awesome program!</p>
<p>That&#8217;s a beautiful screenshot.  How did you manage the screenshot &#8212; getting gvim and a terminal running side-by-side like that?  I first thought screen with regions, but then you wouldn&#8217;t get the colors.  Then I thought emacs in viper-mode, but then you wouldn&#8217;t get the ~&#8217;s down the left side.</p>
<p>I&#8217;m looking around for a good haskell IDE, so this question is about more than simple aesthetics.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brians Brain — Errata &#38; Echoes &#171; BEST IN CLASS</title>
		<link>http://blog.willdonnelly.net/2009/10/14/brians-purely-functional-brain/comment-page-1/#comment-81</link>
		<dc:creator>Brians Brain — Errata &#38; Echoes &#171; BEST IN CLASS</dc:creator>
		<pubDate>Sun, 25 Oct 2009 23:40:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog.willdonnelly.net/?p=293#comment-81</guid>
		<description>[...] Will Donnelly really impressed me. The main logic is only about 6 lines of beautiful Haskell  [...]</description>
		<content:encoded><![CDATA[<p>[...] Will Donnelly really impressed me. The main logic is only about 6 lines of beautiful Haskell  [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Schade</title>
		<link>http://blog.willdonnelly.net/2009/10/14/brians-purely-functional-brain/comment-page-1/#comment-80</link>
		<dc:creator>Michael Schade</dc:creator>
		<pubDate>Fri, 16 Oct 2009 22:43:24 +0000</pubDate>
		<guid isPermaLink="false">http://blog.willdonnelly.net/?p=293#comment-80</guid>
		<description>Very nicely done. It has me interested in Haskell now (don&#039;t let Python know), that&#039;s for sure.</description>
		<content:encoded><![CDATA[<p>Very nicely done. It has me interested in Haskell now (don&#8217;t let Python know), that&#8217;s for sure.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: silver</title>
		<link>http://blog.willdonnelly.net/2009/10/14/brians-purely-functional-brain/comment-page-1/#comment-79</link>
		<dc:creator>silver</dc:creator>
		<pubDate>Fri, 16 Oct 2009 20:44:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.willdonnelly.net/?p=293#comment-79</guid>
		<description>Sorry for offtopic, but can you share your haskell-mode? I like your colors :&gt;</description>
		<content:encoded><![CDATA[<p>Sorry for offtopic, but can you share your haskell-mode? I like your colors :&gt;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: drhodes</title>
		<link>http://blog.willdonnelly.net/2009/10/14/brians-purely-functional-brain/comment-page-1/#comment-78</link>
		<dc:creator>drhodes</dc:creator>
		<pubDate>Fri, 16 Oct 2009 03:25:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.willdonnelly.net/?p=293#comment-78</guid>
		<description>RE: square world, Oh! I suppose the symmetry has something to do with it. I&#039;m having a great time reading this program. It integrate many different aspects:  SDL, Concurrency, Random, Monads and Strategies all at once.  Thanks for taking the time to post, it helps.</description>
		<content:encoded><![CDATA[<p>RE: square world, Oh! I suppose the symmetry has something to do with it. I&#8217;m having a great time reading this program. It integrate many different aspects:  SDL, Concurrency, Random, Monads and Strategies all at once.  Thanks for taking the time to post, it helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Will Donnelly</title>
		<link>http://blog.willdonnelly.net/2009/10/14/brians-purely-functional-brain/comment-page-1/#comment-77</link>
		<dc:creator>Will Donnelly</dc:creator>
		<pubDate>Thu, 15 Oct 2009 23:31:10 +0000</pubDate>
		<guid isPermaLink="false">http://blog.willdonnelly.net/?p=293#comment-77</guid>
		<description>drhodes:
&lt;br&gt;
There&#039;s good reason for having independent sizes on the different axes: with a perfectly square world you can end up with two gliders remaining, and the two will never collide, but with some properly selected sizing that can be made impossible.
&lt;br&gt;
Sebastian:
&lt;br&gt;
You may be right. I think the list comprehension was actually left over from an earlier iteration wherein I needed a similar comprehension multiple times, and I just never really looked at
changing it because it wouldn&#039;t have altered the line count, and seems plenty clear to me.</description>
		<content:encoded><![CDATA[<p>drhodes:<br />
<br />
There&#8217;s good reason for having independent sizes on the different axes: with a perfectly square world you can end up with two gliders remaining, and the two will never collide, but with some properly selected sizing that can be made impossible.<br />
<br />
Sebastian:<br />
<br />
You may be right. I think the list comprehension was actually left over from an earlier iteration wherein I needed a similar comprehension multiple times, and I just never really looked at<br />
changing it because it wouldn&#8217;t have altered the line count, and seems plenty clear to me.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
