guard expression restriction

Andy Kriger <>
Wed Dec 1 16:11:33 CET 2010


As a newcomer to Erlang, I'm curious about the reason for the
restriction on guard expressions to a subset of valid Erlang
expressions

>From
http://www.erlang.org/doc/reference_manual/expressions.html#id75235
" The reason for restricting the set of valid expressions is that
evaluation of a guard expression must be guaranteed to be free of side
effects."

That's nice, but basically says 'this is so important that the
programmer cannot be trusted to get it right.' Many other parts of the
language don't make this statement - fail early and often is
encouraged, from what I understand.  So, I'm wondering about the
history behind that decision and if there's been any talk of removing
that restriction now that Erlang has expanded far beyond the telecom
world. There's a definite benefit to be had in clarity in allowing
user-defined boolean functions that are specific to the application.
Yes, this would leave more room for mistakes and, I'm guessing, cut
off some compiler optimizations, but the decision would be left to the
programmer to make rather than disallowed by the language.

Not looking to start a fight if this is well hashed ground. As I said,
curious about the history and whether it's been debated as an EEP.

thx


More information about the erlang-questions mailing list