<br><br><div><span class="gmail_quote">On 3/20/07, <b class="gmail_sendername">Dan Weston</b> &lt;<a href="mailto:westondan@imageworks.com">westondan@imageworks.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Dan Weston wrote:<br>&gt; Douglas Philips wrote:<br>&gt;&gt; On 2007 Mar 20, at 3:30 PM, Dan Weston indited:<br>&gt;&gt;<br>&gt;&gt;&gt; I looked up John Backus on wikipedia and followed a link to ALGOL:<br>&gt;&gt;&gt; <a href="http://en.wikipedia.org/wiki/ALGOL_60">
http://en.wikipedia.org/wiki/ALGOL_60</a><br>&gt;&gt;&gt; where the following &quot;undesirable&quot; property of call-by-name is mentioned.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; &quot;ALGOL 60 allowed for two evaluation strategies for parameter
<br>&gt;&gt;&gt; passing: the common call-by-value, and call-by-name. Call-by-name had<br>&gt;&gt;&gt; certain limitations in contrast to call-by-reference, making it an<br>&gt;&gt;&gt; undesirable feature in language design. For example, it is impossible
<br>&gt;&gt;&gt; in ALGOL 60 to develop a procedure that will swap the values of two<br>&gt;&gt;&gt; parameters if the actual parameters that are passed in are an integer<br>&gt;&gt;&gt; variable and an array that is indexed by that same integer variable.
<br>&gt;&gt;&gt; However, call-by-name is still beloved of ALGOL implementors for the<br>&gt;&gt;&gt; interesting thunks that are used to implement it.&quot;<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; I suppose that call-by-name is still beloved of Haskell implementors
<br>&gt;&gt;&gt; as well?<br>&gt;&gt;<br>&gt;&gt; Notice that the &quot;problem&quot; with call-by-name is when side-effects are<br>&gt;&gt; involved. In a pure-functional-environment those &quot;problems&quot; don&#39;t<br>
&gt;&gt; arise...<br>&gt;&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --Doug<br>&gt;<br>&gt; It was the phrase &quot;making it an undesirable feature in language design&quot;<br>&gt;&nbsp;&nbsp;that jumped out at me. Here &quot;language&quot; is an implicitly universally
<br>&gt; quantified variable, and the phrase beta-reduces to &quot;call-by-name is an<br>&gt; undesirable feature in Haskell design&quot;.</blockquote><div><br>Ah, but since everything on wikipedia is true yet the conclusion you reached by beta-reduction is false, I believe you have shown that beta-reduction is invalid.
<br>That&#39;s alright though, I never liked function application much anyway.<br></div><br></div><br>