[erlang-questions] Questions on match specifications
Daniel Dormont
dan@REDACTED
Sat Nov 12 05:29:01 CET 2011
Erlang also has reserved words. If I were revising the manual, I would
modify section 2.3 to explicitly say "or if it is a reserved word"
with a link to the list of reserved words, which includes both 'and'
and 'andalso'.
This has nothing to do with match specs specifically; as already
mentioned, there's a typo in that part of the manual. But in fact, you
cannot use 'and' or 'andalso' unquoted *anywhere* in Erlang if you
want them to be literal atoms rather than operators.
dan
On Fri, Nov 11, 2011 at 9:21 PM, wrp <i3text@REDACTED> wrote:
> Thanks. That clear things up some. But I'm not sure about this one:
>
> On Nov 11, 6:44 am, Magnus Henoch <magnus.hen...@REDACTED>
> wrote:
>> > 1. Quoting seems incosistent. Why is 'and' quoted but andalso is not?
>>
>> Probably a typo. Both need to be quoted, otherwise you get a syntax
>> error.
>
> In the MatchConditions and MatchBody, aren't all the terms passed as
> atoms?
>
> Here are all the functions listed as allowed for ETS matches:
>
> abs is_atom is_record '=:=' 'and'
> element is_binary is_reference '=/=' 'or'
> hd is_constant is_seq_trace '==' 'not'
> length is_float is_tuple '/=' 'xor'
> node is_function '+' '<' 'band'
> round is_integer '-' '=<' 'bor'
> size is_list '*' '>' 'bnot'
> tl is_number 'div' '>=' 'bxor'
> trunc is_pid 'rem' andalso 'bsl'
> self is_port orelse 'bsr'
>
> According to the Erlang rules for atoms, "An atom should be enclosed
> in single quotes (') if it does not begin with a lower-case letter or
> if it contains other characters than alphanumeric characters,
> underscore (_), or @", so only the non-alphanumeric operators should
> need quoting. Why do the arithmetic and logical operators need to be
> quoted?
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
More information about the erlang-questions
mailing list