Enhanced type guard syntax]

Bengt Kleberg Bengt.Kleberg@REDACTED
Thu Sep 18 16:46:55 CEST 2003

Joe Armstrong wrote:
>   Adding  guards  like  this   violates  one  of  my  favorite  design
> meta-principles:
>   " If  you add something  to a language  you have to  chuck something
> away "

although i am very much in favour of this meta-principle (i got very 
strong reactions when suggesting a removal before (as in: not at) the 
scheme strawman workshop  (ICFP '98)), it does not apply in this 
particular case.

this is not adding something, instead it is extending an already 
existing feature to be more orthogonal. it should make erlang easier to 
learn. Var/binary is no longer a special case, but just another example 
of Var/builtin_type.


on the other hand, having both
foo(A, B) when integer(A), integer(B) ->
foo(A, B) when is_integer(A) and is_integer(B) ->
is a very strong violation of the meta-principle. it should be dealt 
with asap.


More information about the erlang-questions mailing list