principle of least surprise
Robert Virding
robert.virding@REDACTED
Wed Nov 23 00:15:33 CET 2005
Kostis is right but he doesn't give the whole story. In the beginning
there was the void and when we filled the void with Erlang we thought
that guards should only be extensions to the basic pattern matching with
things like simple type tests etc. Logical expressions were not
envisioned. There we there were no problems with overlapping names and
we could use float/1 as a type test in guards and as a conversion
function in the body.
This broke with boolean type test functions. Instead of just having a
few is_X/1 we thought it better to have the full range and then
encourage people to use them in guards instead of the old X/1 versions.
I don't really see why people still use the old X/1 type tests, it's not
like we added the new ones yesterday. Especially not savvy users.
Robert
Kostis Sagonas wrote:
> > > Nor do I really see the point of two collections of
> > > nearly-identical type test primitives (is_X/1 vs X/1).
> >
> > the question is better stated as why adding is_X/1 when there already
> > exists X/1?
>
>One of the reasons is the following:
>
>Eshell V5.5 (abort with ^G)
>1> float(3.1).
>3.10000
>2> is_float(3.1).
>true
>
>
>Kostis
>
>
>
>
More information about the erlang-questions
mailing list