sign in
Home | Updates | Pages | Users | Admin | Help

erlangstudy

Erlang Study

Origin: Getting Started With Erlang

The Erlang Shell

You have to tell it you are done entering code by finishing the line with a full stop ”.” and a carriage return

Modules and Functions

In general module and the file name need to be the same. So inside tut.erl write:
-module(tut1).
-export([fac/1]).

fac(1) ->
    1;
fac(N) ->
    N * fac(N - 1).

The two parts of the fac function are called its clauses.

We end the first part with a ”;” which indicates that there is more of this function to come. the second part ends with a ”.” saying that there are no more parts of this function.

Atoms

Atoms start with a small letter (manual), for example: charles, centimeter, inch. Atoms are simply names, nothing else. They are not like variables which can have a value.
-module(tut2).
-export([convert/2]).

convert(M, inch) ->
    M / 2.54;

convert(N, centimeter) ->
    N * 2.54.

9> c(tut2).
{ok,tut2}
10> tut2:convert(3, inch).
1.18110
11> tut2:convert(7, centimeter).
17.7800

Tuples

Erlang has a way to group things together to make things more understandable. We call these tuples. Tuples are surrounded by “{” and “}”.
-module(tut3).
-export([convert_length/1]).

convert_length({centimeter, X}) ->
    {inch, X / 2.54};
convert_length({inch, Y}) ->
    {centimeter, Y * 2.54}.

14> c(tut3).
{ok,tut3}
15> tut3:convert_length({inch, 5}).
{centimeter,12.7000}
16> tut3:convert_length(tut3:convert_length({inch, 5})).
{inch,5.00000}

We have shown tuples with two parts above, but tuples can have as many parts as we want and contain any valid Erlang term.

Tuples have a fixed number of things in them. We call each thing in a tuple an element. So in the tuple {moscow,{c,-10}}, element 1 is moscow and element 2 is {c,-10}. I have chosen c meaning Centigrade (or Celsius) and f meaning Fahrenheit.


Powered by JunebugWiki v0.0.31 Page last edited by stoyan on March 12, 2007 12:45 PM (diff)
[readonly] Version 2 «oldernewer»currentversions