[erlang-questions] DRY principle and the syntax inconsistency in fun vs. vanilla functions
Thu May 19 12:47:50 CEST 2011
"But how interesting is whether existing code would break or not?"
Not very. I mean, who uses Erlang for anything important? Hardly anybody,
"It would, as others have pointed out, also be much harder to jump into a
module and _know_ what the clause does since the function's name can be
It would only be harder ("much"??) if you *chose*, in such cases, to use the
syntax I propose to bring over from multi-clause funs. In the case you bring
up, it might be wiser not to. And what I propose clearly allows everyone to
continue with the present syntax. So your argument for readability in this
case comes down to "somebody might not use this language feature wisely."
On Thu, May 19, 2011 at 6:37 PM, Raimo Niskanen <
> On Thu, May 19, 2011 at 01:50:33AM +0900, Michael Turner wrote:
> > I'm still waiting for the answer to the real showstopper question: would
> > existing code break, under my proposal?
> > -michael turner
> I can not think of any existing code that would break, but there
> are others that have weirder imagination than me.
> But how interesting is whether existing code would break or not?
> One nice thing with Erlang for me is that it is not like Perl;
> there seldom seldom many ways to do it (syntacticly).
> The current compromise and limitation of having to write the
> function name for every clause for regular function and not writing
> any function name for funs I think is very good. It encourages
> short funs and makes it easier to read long functions with
> many clauses. If you restructure your code, move around clauses
> often you run into a compilation error when you have messed up
> clauses between functions.
> If you would remove the requirement of a function name on every
> clause you would increase the possibility of getting completely
> incorrect code through the compiler since it is enough that
> the arity is the same between the clauses; you can accidentally
> paste in a totally unrelated clause from some other function
> and not discover it until it crashes in the field, provided
> testing is incomplete (which it mostly is).
> It would, as others have pointed out, also be much harder to
> jump into a module and _know_ what the clause does since
> the function's name can be pages away. That would encourage
> no more than page-long functions instead of no more than
> page-long clauses and I sincerely prefere the latter.
> In short. I think the impact on readability and programmer's
> common mistake preventions clearly does not motivate the change.
> The possible benefits are minor.
> / Raimo Niskanen, Erlang/OTP, Ericsson AB
> erlang-questions mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions