<br><br><div class="gmail_quote">On Thu, Nov 4, 2010 at 4:48 PM, Richard O&#39;Keefe <span dir="ltr">&lt;<a href="mailto:ok@cs.otago.ac.nz">ok@cs.otago.ac.nz</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im"><br>
On 4/11/2010, at 9:08 PM, Stephen Tetley wrote:<br>
&gt;<br>
&gt;<br>
&gt; Did Haskell get significant whitespace from Python - doubtful as<br>
&gt; Python possibly wasn&#39;t visible enough at the time, but you never know.<br>
<br>
</div>Python did not originate indentation-based syntax.<br>
Occam has it too.<br>
I first came across the idea in a rather old book<br>
which I *think* was by Reynolds.<br>
<div class="im"><br></div></blockquote><div>I had absolutely nothing to do with it.</div><div><br></div><div>However, I must say that it is obvious to anybody properly schooled in philology and hermeneutics, to say nothing of theology and geometry, that both Python and Haskell stole their whitespace ideas from the medieval scribes who invented interword spaces.  As is well known, the reason Roman computers never caught on is because they didn&#39;t use white space in their programming languages.  For more info, see &quot;Space Between Words; The origins of silent reading&quot; by Paul Saenger, Stanford U Press, 1997. I&#39;m not joking; anybody who enjoys thinking about computation will find it very enjoyable.  It&#39;s one of those historical works that makes you realize that what you thought was trivial (e.g. whitespace) is actually of enormous import.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">
&gt; Doesn&#39;t COBOL have significant layout anyway as an inspiration to<br>
&gt; both? </div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">
<br>
</div>Yes and no.  What it actually has relates strongly to punched cards<br>
and is more like assemblers of the day.<br>
<br>
Columns 1 to 6 were for the sequence number.<br>Column 7 is called the indicator area.<br>Columns 8 to 11 are &quot;Area A&quot;.  Certain structure keywords<br>
and labels must go in that area.<br>
 Columns 12 to 72 are &quot;Area B&quot;.  Normal statements go in that<br>
area.  Indentation *within* area B has no significance whatever.<br>
 Columns 73 to 80 have a name (the Identification Field) but<br></blockquote><div><br></div><div>And I thought I was the last mainframer alive!  (I&#39;m sure you&#39;ll agree calling COBOL an &quot;inspiration&quot; of Haskell might be a wee bit of a stretch.) Anyway, anybody who has ever wondered why 80 cols is a standard width now knows.</div>
<div><br></div><div>-Gregg</div></div>