Syntax is throughing my understanding off.
Tue Sep 28 23:42:36 CEST 2004
It's even more basic than that.
A function name is an atom.
An atom is either a lowercase letter followed by letters, digits and '_'.
For example myfun, lotsOfStuff1 or even_more_stuff.
an atom is a single quote ' followed by any characters up to the next single
quote. There are rules for entering funny characters in quoted atoms. For
example '#text#', 'this is a n atom', or '->'.
These rules apply to all atoms, everywhere.
----- Original Message -----
From: "Eric Newhuis" <>
To: "Edward Ing" <>; <>
Sent: Thursday, September 23, 2004 6:33 AM
Subject: Re: Syntax is throughing my understanding off.
> The previous response still holds.
> Erlang needs a hint that the function name is still just an atom like
> other function name. There is nothing special about the use of an atom in
> the function name.
> The following are equivalent:
> myfun () -> 0.
> 'myfun' () -> 0.
> But because Erlang treats # as a special character you cannot declare an
> atom in a function declaration starting with the # sign. You must
> explicitly tell the parser/lexical analyzer that you are feeding it an
> <atom> <left-paren> <param-list> <right-paren> <arrow> <function-body>
> Atoms are expressed as words beginning with lower case letters or as
> single-quoted character globs.
> You'll also see stuff like this from time to time:
> 'CapitalLetterFunctionName' () -> 0.
> -> 0.
> Ciao. Happy Erlanging.
> On 9/22/04 8:51 PM, "Edward Ing" <> wrote:
> > Okay,
> > In most programming languages I work with, the name of a function is a
> > 'symbol'. And characters like " ' " are tokens which demarcate a
> > in between. Is it the case that erlang evaluating '#text#' to make up
> > function name symbol?
> > ----- Original Message -----
> > From: "Bengt Kleberg" <>
> > To: <>
> > Sent: Wednesday, September 22, 2004 1:44 AM
> > Subject: Re: Syntax is throughing my understanding off.
> >> Edward Ing wrote:
> >>> Hi,
> >>> I am new to Erlang and I am trying to learn to use it to manipulate
> >>> I am lookng into the source files and see this definition:
> >>> '#text#'(Text) ->
> >>> export_text(Text).
> >>> I cannot find any reference material to explain what this means, the
> >>> '#text#'(Text).
> >>> Obviously it is defining a function, but what is how do you invoke
> >>> function? Is '#text#' some kind of macro substitution?
> >> 1 you call the function like an ordinary function:
> >> '#text#'("a text").
> >> (or F = '#text', F("a text"), etc.)
> >> 2 it is not a macro. (macros are accessed with '?' ,ie ?A_MACRO). what
> >> is happening is the creation of an _atom_ . atoms are usually small
> >> letters, numbers and '_', but they can be anything. you just have to
> >> single quote (') them. eg 'This is an atom!'
> >> bengt
More information about the erlang-questions