Anyone who thinks that I address the needs of writers in preference to readers on this thread hasn't been reading me with much attention. Readability is somewhat in the eye of the beholder. A lot of the beholders on this list are seasoned Erlang programmers. It's pretty clear what they prefer: the way things are.<div>
<br></div><div>I happen to find the indented style I propose more readable. I have also said that I think programmers new to Erlang would tend to agree, although without a scientific test it would be hard to establish this, I admit. Some day, if Erlang survives, all the eyes on it will be new, because we'll all pass from the scene, eventually, one way or another. So it's not as if newbie opinion is utterly irrelevant here.</div>
<div><br></div><div>Disagreeing with my expressed position on readability is fair. Writing as if I'd never expressed that position, however, is not.<div><br></div><div>-michael turner<br><br><div class="gmail_quote">On Sat, May 21, 2011 at 12:04 AM, Edmond Begumisa <span dir="ltr"><<a href="mailto:ebegumisa@hysteria-tech.com">ebegumisa@hysteria-tech.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

consider the needs of READERS in preference to WRITERS.<br>
</blockquote>
<br></div>
I found this statement nicely summed up the conflicting views on this thread. Very well put. And it puts the issue to rest IMO.<br><font color="#888888">
<br>
- Edmond -</font><div><div></div><div class="h5"><br>
<br>
<br>
On Fri, 20 May 2011 18:27:03 +1000, Richard O'Keefe <<a href="mailto:ok@cs.otago.ac.nz" target="_blank">ok@cs.otago.ac.nz</a>> wrote:<br>
<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div></div><div class="h5">
<br>
On 19/05/2011, at 4:08 AM, Michael Turner wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
"Sorry, but Erlang doesn't *need* a better chance of survival."<br>
<br>
Now, wait, I'm really pretty sure that, less than a year ago, I saw both Peyton-Jones and Armstong in a video, speculating about the future of their respective favorite languages, and openly wondering what the long-term future held.<br>

</blockquote>
<br>
And?  Haskell is booming.  They tried to avoid success and failed miserably.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
In the meantime, I haven't noticed a dramatic increase in the frequency of Erlang job postings, though perhaps it's gone up. However, a doubling would still leave the number small.<br>
</blockquote>
<br>
That does not mean that Erlang is under threat.  Come to think of it, R is booming<br>
also.  There are at least 81 mirrors of CRAN to handle the download volumes.  How<br>
many R jobs do you see?<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
"Changing core language features that are solid,..."<br>
<br>
Except that that what I proposes fixes a weak spot (among other things): failed syntactic consistency.<br>
</blockquote>
<br>
No, it leaves the *weak* spot (the absence of names in funs) along<br>
and smashes the *strong* spot.<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
"... well thought out ..."<br>
<br>
Except that Joe Armstrong has just admitted (on this thread, IIRC) that the reason for the inconsistency is that they just didn't think about it at the time...."<br>
</blockquote>
<br>
If you mean when "funs" were introduced, that may be so.<br>
But the repeated function names were copied from languages where it *WAS*<br>
well thought out, rather like you probably would not fault someone for<br>
designing a programming language using [] for array subscripting.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
"... and non-harmful ..."<br>
<br>
Implying that what I suggest here IS harmful?<br>
</blockquote>
<br>
Yes, it is<br>
It would seriously impair readability.<br>
It would break several code processing tools that I use.<br>
It would drastically impair the usefulness of every existing Erlang book.<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Actually not. No amount of education and experience will make repeating the function name with every clause a DRY issue, for those who find that repetition as more of an obstacle than otherwise.<br>
</blockquote>
<br>
Remember always to consider the needs of READERS in preference to WRITERS.<br>
<br>
Take Haskell, as an example.  One of the advantages of Haskell is that the<br>
types of functions can be inferred from their bodies (as long as you stick<br>
to the standard language and don't use the rank 2 extension GHC offers).<br>
Why then do most Haskell programmers recommend writing down function types<br>
anyway, even though that violates DRY?<br>
<br>
Because although the type *is* implicit in the code, and the *compiler*<br>
can figure it out, that doesn't mean it's easy for *humans*.<br>
<br>
If you are one of the people who find repeating function names an obstacle<br>
(on present evidence, a set of cardinality one),<br>
 - you don't have to use Erlang<br>
 - you can always write cases if you want<br>
 - you could look into LFE<br>
 - you could write your own preprocessor<br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
No amount of education and experience will keep people from wondering, "Why this strange inconsistency?"<br>
</blockquote>
<br>
As a matter of fact, I've known about Erlang since about a year (maybe two) since the first paper<br>
on it.  Since well before it *had* funs, in fact.  And you know, I've *never* had that thought.<br>
I don't experience any inconsistency.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
oAnd better documentation and training will only make more people ask that question. I didn't ask that question until I *stumbled* on the extended syntax for funs; I didn't know about it before.<br>
</blockquote>
<br>
"Extended syntax for funs?"  What's that?  The syntax of funs is described in<br>
chapter 7 of the reference manual, the chapter on expressions, which is exactly<br>
where you would expect to find it.<br>
<br>
The inconsistency I see is that functions are OK but funs<br>
(a) do not permit a visible function name<br>
    -- just like Haskell, Clean, SML, CAML, &c<br>
(b) begin with "fun" instead of just beginning<br>
    -- just like Haskell, Clean, SML, &c<br>
(c) end with "end" instead of ending with a "."<br>
    -- the other languages I mentioned do not have any<br>
    -- terminator, so I usually find myself having to<br>
    -- wrap them in parentheses.  It's quite nice not<br>
    -- having to do that.<br>
<br>
However, (b) and (c) are unsurprising because funs are<br>
*expressions* and normal function definitions are not.<br>
<br>
If you are that upset about (a), I suggest that the inconsistency<br>
should be resolved by allowing funs to have names, as I've suggested,<br>
because that would fix the *other* difference between funs and<br>
normal functions, which is that normal functions can be directly<br>
recursive, and funs cannot.<br>
<br>
Your proposal to add a definition style that I find horrible for<br>
normal functions fails to do anything about that *other* difference<br>
between functions and funs.<br>
<br>
I repeat, you are urging that a *strong* spot be smashed to make<br>
it consistent with a *weak* spot, which is quite the wrong way around.<br>
<br></div></div><div class="im">
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</div></blockquote>
<br>
<br>
-- <br><div><div></div><div class="h5">
Using Opera's revolutionary e-mail client: <a href="http://www.opera.com/mail/" target="_blank">http://www.opera.com/mail/</a><br>
</div></div></blockquote></div><br></div></div>