<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments for On The Balcony</title>
	<atom:link href="http://onthebalcony.wordpress.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://onthebalcony.wordpress.com</link>
	<description></description>
	<lastBuildDate>Tue, 30 Dec 2008 15:54:13 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on My Evolution as a Haskell Programmer: Factorial with Arrows by lorenzo</title>
		<link>http://onthebalcony.wordpress.com/2007/02/19/my-evolution-as-a-haskell-programmer/#comment-771</link>
		<dc:creator>lorenzo</dc:creator>
		<pubDate>Tue, 30 Dec 2008 15:54:13 +0000</pubDate>
		<guid isPermaLink="false">http://onthebalcony.wordpress.com/2007/02/19/my-evolution-as-a-haskell-programmer/#comment-771</guid>
		<description>Notice that you can define loop (SF f) in another way. The original is

instance ArrowLoop SF where
  loop (SF f) = SF $ \as -&gt;
    let (bs,cs) = unzip (f (zip as (stream cs)))
    in bs  

And here it is the (more cryptic :) definition I propose

loop (SF f) = SF $ loop $ second stream &gt;&gt;&gt; uncurry zip &gt;&gt;&gt; f &gt;&gt;&gt; unzip

where I especially like the fact that &quot;loop&quot; of SF functions it is defined in terms of (built-in) looping functions of type ([a],[c]) -&gt; ([b], [c]). In this way you reuse the main idea of looping, which is encoded in Control.Arrow when defining (-&gt;) as an instance of ArrowLoop.</description>
		<content:encoded><![CDATA[<p>Notice that you can define loop (SF f) in another way. The original is</p>
<p>instance ArrowLoop SF where<br />
  loop (SF f) = SF $ \as -&gt;<br />
    let (bs,cs) = unzip (f (zip as (stream cs)))<br />
    in bs  </p>
<p>And here it is the (more cryptic <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  definition I propose</p>
<p>loop (SF f) = SF $ loop $ second stream &gt;&gt;&gt; uncurry zip &gt;&gt;&gt; f &gt;&gt;&gt; unzip</p>
<p>where I especially like the fact that &#8220;loop&#8221; of SF functions it is defined in terms of (built-in) looping functions of type ([a],[c]) -&gt; ([b], [c]). In this way you reuse the main idea of looping, which is encoded in Control.Arrow when defining (-&gt;) as an instance of ArrowLoop.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on My Evolution as a Haskell Programmer: Factorial with Arrows by Gene Arthur</title>
		<link>http://onthebalcony.wordpress.com/2007/02/19/my-evolution-as-a-haskell-programmer/#comment-770</link>
		<dc:creator>Gene Arthur</dc:creator>
		<pubDate>Wed, 06 Aug 2008 13:09:26 +0000</pubDate>
		<guid isPermaLink="false">http://onthebalcony.wordpress.com/2007/02/19/my-evolution-as-a-haskell-programmer/#comment-770</guid>
		<description>I have used arrows quite a bit for doing all kinds of things, and one of the things I like most about using them as opposed to other constructs, such as monads, is the right to left nature of the beast, and the use of (***) and (&amp;&amp;&amp;), which can be strung together in as complex a scenario as needed and then the results of say a thing like  
 (f &amp;&amp;&amp; g) &amp;&amp;&amp; (h &amp;&amp;&amp; j) &gt;&gt;&gt; (\((a,b),(c,d) -&gt; a + b + c + d)
where the four functions f,g,h,j are applied separately to an input and then the result of that computation is then summed together in the lambda.  Pretty neat stuff.. and you can use them out of the box without understanding category theory or lambda caluculus... I leave that stuff to S.P. Jones and those folks to get the compiler right.. and just use the stuff..
cheers,
gene</description>
		<content:encoded><![CDATA[<p>I have used arrows quite a bit for doing all kinds of things, and one of the things I like most about using them as opposed to other constructs, such as monads, is the right to left nature of the beast, and the use of (***) and (&amp;&amp;&amp;), which can be strung together in as complex a scenario as needed and then the results of say a thing like<br />
 (f &amp;&amp;&amp; g) &amp;&amp;&amp; (h &amp;&amp;&amp; j) &gt;&gt;&gt; (\((a,b),(c,d) -&gt; a + b + c + d)<br />
where the four functions f,g,h,j are applied separately to an input and then the result of that computation is then summed together in the lambda.  Pretty neat stuff.. and you can use them out of the box without understanding category theory or lambda caluculus&#8230; I leave that stuff to S.P. Jones and those folks to get the compiler right.. and just use the stuff..<br />
cheers,<br />
gene</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Ruby and elegance: Transpose by Martijn</title>
		<link>http://onthebalcony.wordpress.com/2007/03/10/ruby-and-elegance-transpose/#comment-769</link>
		<dc:creator>Martijn</dc:creator>
		<pubDate>Sat, 28 Jun 2008 13:44:14 +0000</pubDate>
		<guid isPermaLink="false">http://onthebalcony.wordpress.com/2007/03/10/ruby-and-elegance-transpose/#comment-769</guid>
		<description>Hey Chris, deze Ruby-implementatie is dan wel korter maar doet niet hetzelfde als de Haskellimplementatie. Vergelijk:

&gt;&gt; [1,2,3].zip [4,5,6], [7,8,9,10]
=&gt; [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

Prelude Data.List&gt; transpose [[1,2,3], [4,5,6], [7,8,9,10]]
[[1,4,7],[2,5,8],[3,6,9],[10]]

Het feit dat Haskell goed omgaat met lijsten van verschillende lengte is extreem handig in de situaties waar ik transpose tot nu toe in gebruikt heb.</description>
		<content:encoded><![CDATA[<p>Hey Chris, deze Ruby-implementatie is dan wel korter maar doet niet hetzelfde als de Haskellimplementatie. Vergelijk:</p>
<p>&gt;&gt; [1,2,3].zip [4,5,6], [7,8,9,10]<br />
=&gt; [[1, 4, 7], [2, 5, 8], [3, 6, 9]]</p>
<p>Prelude Data.List&gt; transpose [[1,2,3], [4,5,6], [7,8,9,10]]<br />
[[1,4,7],[2,5,8],[3,6,9],[10]]</p>
<p>Het feit dat Haskell goed omgaat met lijsten van verschillende lengte is extreem handig in de situaties waar ik transpose tot nu toe in gebruikt heb.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Haskell + lhs2TeX + LaTeX beamer by eelco</title>
		<link>http://onthebalcony.wordpress.com/2008/05/16/haskell-lhs2tex-latex-beamer/#comment-767</link>
		<dc:creator>eelco</dc:creator>
		<pubDate>Wed, 21 May 2008 09:54:50 +0000</pubDate>
		<guid isPermaLink="false">http://onthebalcony.wordpress.com/?p=31#comment-767</guid>
		<description>Hi Andres, thanks for your comments!

(1) You&#039;re right, the HTML is invalid too :(  Unfortunately I can only blame WordPress and myself for picking WordPress. We will probably try to move this blog.  (I hadn&#039;t noticed it, because Opera renders it as &#039;intended&#039;)

(2) Great idea.  I choose to use &#039;\ignore&#039; because of a comment on the Haskell wiki, but doing it the lhs2TeX-way seems much more sensible.

(3) I&#039;m only using parts of the code (which can easily be done), but also from different files which I want to present mixed.  Also, I want the code to be runnable.  Because there&#039;s Template Haskell involved, I can&#039;t put the code together in one file.  So, yeah, it&#039;s a pretty rare problem.  If there&#039;s another or better way to do it, I&#039;d love to hear it :)</description>
		<content:encoded><![CDATA[<p>Hi Andres, thanks for your comments!</p>
<p>(1) You&#8217;re right, the HTML is invalid too <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />   Unfortunately I can only blame WordPress and myself for picking WordPress. We will probably try to move this blog.  (I hadn&#8217;t noticed it, because Opera renders it as &#8216;intended&#8217;)</p>
<p>(2) Great idea.  I choose to use &#8216;\ignore&#8217; because of a comment on the Haskell wiki, but doing it the lhs2TeX-way seems much more sensible.</p>
<p>(3) I&#8217;m only using parts of the code (which can easily be done), but also from different files which I want to present mixed.  Also, I want the code to be runnable.  Because there&#8217;s Template Haskell involved, I can&#8217;t put the code together in one file.  So, yeah, it&#8217;s a pretty rare problem.  If there&#8217;s another or better way to do it, I&#8217;d love to hear it <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Haskell + lhs2TeX + LaTeX beamer by Andres</title>
		<link>http://onthebalcony.wordpress.com/2008/05/16/haskell-lhs2tex-latex-beamer/#comment-766</link>
		<dc:creator>Andres</dc:creator>
		<pubDate>Tue, 20 May 2008 08:54:42 +0000</pubDate>
		<guid isPermaLink="false">http://onthebalcony.wordpress.com/?p=31#comment-766</guid>
		<description>Nice post.

I have a number of comments though:

(1) The code blocks look wrong in my browser. Only the first line is framed, the rest is formatted like ordinary text in a proportional font.

(2) Instead of a command like \ignore, it&#039;s better to use %if directives on lhs2TeX&#039;s side to exclude stuff. The reason is that a command like \ignore in TeX can still have subtle effects. For example, the way you define \ignore, it can easily lead to extra whitespace being included in your TeX output.

(3) What exactly do you need the construction for that you first define all the frames and then use them? I&#039;ve never needed that in any presentation. I can imagine some situations (where you want to repeat a frame in several situations) where this would be useful, but they&#039;re relatively rare. Am I missing something?</description>
		<content:encoded><![CDATA[<p>Nice post.</p>
<p>I have a number of comments though:</p>
<p>(1) The code blocks look wrong in my browser. Only the first line is framed, the rest is formatted like ordinary text in a proportional font.</p>
<p>(2) Instead of a command like \ignore, it&#8217;s better to use %if directives on lhs2TeX&#8217;s side to exclude stuff. The reason is that a command like \ignore in TeX can still have subtle effects. For example, the way you define \ignore, it can easily lead to extra whitespace being included in your TeX output.</p>
<p>(3) What exactly do you need the construction for that you first define all the frames and then use them? I&#8217;ve never needed that in any presentation. I can imagine some situations (where you want to repeat a frame in several situations) where this would be useful, but they&#8217;re relatively rare. Am I missing something?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Just for fun: map as &#8216;higher-order function&#8217; in bash by eelco</title>
		<link>http://onthebalcony.wordpress.com/2008/03/08/just-for-fun-map-as-higher-order-function-in-bash/#comment-757</link>
		<dc:creator>eelco</dc:creator>
		<pubDate>Sat, 08 Mar 2008 16:13:52 +0000</pubDate>
		<guid isPermaLink="false">http://onthebalcony.wordpress.com/?p=30#comment-757</guid>
		<description>Hey, that&#039;s cool.  Thanks :)</description>
		<content:encoded><![CDATA[<p>Hey, that&#8217;s cool.  Thanks <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Just for fun: map as &#8216;higher-order function&#8217; in bash by Steve Vinoski</title>
		<link>http://onthebalcony.wordpress.com/2008/03/08/just-for-fun-map-as-higher-order-function-in-bash/#comment-756</link>
		<dc:creator>Steve Vinoski</dc:creator>
		<pubDate>Sat, 08 Mar 2008 15:52:01 +0000</pubDate>
		<guid isPermaLink="false">http://onthebalcony.wordpress.com/?p=30#comment-756</guid>
		<description>You could avoid whitespace issues in arguments if you got rid of $xs, which isn&#039;t really needed, and just pass &quot;$@&quot; (with the double quotes) instead within the recursion. &quot;$@&quot; is special in sh in that it preserves whitespace. For example, try this with your implementation:

map echo 1 2 &#039;3 4&#039;

you get the numbers 1-4 each printed on a separate line, which means the whitespace within the argument &#039;3 4&#039; is lost. If however you make the change I suggested, you get:

1
2
3 4

which is correct. 

Also, see the BSD apply(1) command:

NAME
     apply -- apply a command to a set of arguments

SYNOPSIS
     apply [-a c] [-d] [-#] command argument ...

DESCRIPTION
     The apply utility runs the named command on each argument argument in turn.

It&#039;s available on Mac OS X, if you have that.</description>
		<content:encoded><![CDATA[<p>You could avoid whitespace issues in arguments if you got rid of $xs, which isn&#8217;t really needed, and just pass &#8220;$@&#8221; (with the double quotes) instead within the recursion. &#8220;$@&#8221; is special in sh in that it preserves whitespace. For example, try this with your implementation:</p>
<p>map echo 1 2 &#8216;3 4&#8242;</p>
<p>you get the numbers 1-4 each printed on a separate line, which means the whitespace within the argument &#8216;3 4&#8242; is lost. If however you make the change I suggested, you get:</p>
<p>1<br />
2<br />
3 4</p>
<p>which is correct. </p>
<p>Also, see the BSD apply(1) command:</p>
<p>NAME<br />
     apply &#8212; apply a command to a set of arguments</p>
<p>SYNOPSIS<br />
     apply [-a c] [-d] [-#] command argument &#8230;</p>
<p>DESCRIPTION<br />
     The apply utility runs the named command on each argument argument in turn.</p>
<p>It&#8217;s available on Mac OS X, if you have that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Beautiful timetables by eelco</title>
		<link>http://onthebalcony.wordpress.com/2007/11/11/beautiful-timetables/#comment-690</link>
		<dc:creator>eelco</dc:creator>
		<pubDate>Wed, 14 Nov 2007 20:01:10 +0000</pubDate>
		<guid isPermaLink="false">http://onthebalcony.wordpress.com/2007/11/11/beautiful-timetables/#comment-690</guid>
		<description>Hee Pim, het is op dit moment nog allemaal een beetje sterk gekoppeld met Haskell.  Je hebt dus een Haskell compiler (zoals http://haskell.org/ghc/) nodig.  In de zip zit een README.lhs met een klein voorbeeldje en verdere uitleg, had je die al gezien?</description>
		<content:encoded><![CDATA[<p>Hee Pim, het is op dit moment nog allemaal een beetje sterk gekoppeld met Haskell.  Je hebt dus een Haskell compiler (zoals <a href="http://haskell.org/ghc/)" rel="nofollow">http://haskell.org/ghc/)</a> nodig.  In de zip zit een README.lhs met een klein voorbeeldje en verdere uitleg, had je die al gezien?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Beautiful timetables by Pim</title>
		<link>http://onthebalcony.wordpress.com/2007/11/11/beautiful-timetables/#comment-689</link>
		<dc:creator>Pim</dc:creator>
		<pubDate>Wed, 14 Nov 2007 17:02:35 +0000</pubDate>
		<guid isPermaLink="false">http://onthebalcony.wordpress.com/2007/11/11/beautiful-timetables/#comment-689</guid>
		<description>Hee tof, maar hoe kan ik hiermee aan de slag?
groet van een trambaangenoot.</description>
		<content:encoded><![CDATA[<p>Hee tof, maar hoe kan ik hiermee aan de slag?<br />
groet van een trambaangenoot.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Beautiful timetables by eelco</title>
		<link>http://onthebalcony.wordpress.com/2007/11/11/beautiful-timetables/#comment-684</link>
		<dc:creator>eelco</dc:creator>
		<pubDate>Mon, 12 Nov 2007 13:57:05 +0000</pubDate>
		<guid isPermaLink="false">http://onthebalcony.wordpress.com/2007/11/11/beautiful-timetables/#comment-684</guid>
		<description>@dons: thanks, I guess the code can use some refactoring ;)

The code doesn&#039;t do much, actually.  I forgot to tell something about the &#039;features&#039; in the post but some thing it does:

 * Minimize the width of timetable by splitting at the biggest &#039;gap&#039; (and not at midnight).
 * Calculate all sets of days, sorting them on the number of days.
 * The colors of the sets go from dark to light. So, the darker the dot, the more days it accounts for. 

@Ben: the reason the dots are gray is mainly that it should be printable on my laser printer ;)</description>
		<content:encoded><![CDATA[<p>@dons: thanks, I guess the code can use some refactoring <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>The code doesn&#8217;t do much, actually.  I forgot to tell something about the &#8216;features&#8217; in the post but some thing it does:</p>
<p> * Minimize the width of timetable by splitting at the biggest &#8216;gap&#8217; (and not at midnight).<br />
 * Calculate all sets of days, sorting them on the number of days.<br />
 * The colors of the sets go from dark to light. So, the darker the dot, the more days it accounts for. </p>
<p>@Ben: the reason the dots are gray is mainly that it should be printable on my laser printer <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>
