Guards and side effects

mccratch@REDACTED mccratch@REDACTED
Fri Mar 11 12:32:20 CET 2005


On 2005-03-11 at 11:28:05 (+0100), Vlad Dumitrescu wrote:
> Hi,
> 
> From: "Thomas Johnsson XA (LN/EAB)" <thomas.xa.johnsson@REDACTED>
> > There are many opportunities for the programmer to shoot him/herself in the
> foot,
> > but to hold the programmer in strict harness in this particular corner of the
> > language, and nowhere else, I find that misguided.
> 
> Good point, I think. The language proper should not be restricted by what are
> mostly implementation/optimization issues. And extra power might open
> possibilities that now are closed.
> 
> However, Erlang has a very pragmatic background. If the extra power means a
> noticeable slowdown in applications that don't use that power, it's not going to
> be easy to convince users it's good idea.

Well the extra power is just "syntactic sugar" for something that is
already possible in Erlang. Not being able to express some condition
in guards just forces one to use another approach which might look
ugly.

In fact I think it would be really possible to introduce the extension
(using arbitrary boolean expressions in guards) using
the parse_transform mechanism for at least functions and if
expressions (preserving the semantics of a receive statement I think is
very difficult). It is just some work and might reduce the performance
compared to an implementation in the compiler (of the generated code).

Performance loss for old code should not occur, because a guard
expression using only expressions allowed today in guards can be
compiled as it is now.

--
Cheers
Matthias Kretschmer



More information about the erlang-questions mailing list