Erlang (programming language)/Tutorials: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Eric Evers
imported>Eric Evers
Line 57: Line 57:
===Popular Modules===
===Popular Modules===
:[[Erlang_programming_language/Tutorials/Math|math]]
:[[Erlang_programming_language/Tutorials/Math|math]]
:[[Erlang_programming_language/Tutorials/Math|gb_sets]]
:[[Erlang_programming_language/Tutorials/Lists|lists]]
:[[Erlang_programming_language/Tutorials/Lists|lists]]
:[[Erlang_programming_language/Tutorials/regexp|regexp: Regular Expressions]]
:[[Erlang_programming_language/Tutorials/regexp|regexp: Regular Expressions]]

Revision as of 11:48, 14 November 2008

This article is developing and not approved.
Main Article
Discussion
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
Tutorials [?]
 
Tutorials relating to the topic of Erlang (programming language).

Erlang Language Programming Tutorials

Overview

Basic Erlang

Get to know the Command Line
Terms
Pattern Matching
Expressions
Functions
Guards
Modules
Errors - working with exceptions
Processes and Messages
Trapping Exit Signals
Timeouts
Macros
Techniques of Recursion
List Comprehensions
List Comments

Syntax

Functions are defined by the domain of the arguments and the number of arguemnts. A function ends with a period. A function over a particular domain of values is separated by a semicolon.

fact(0) -> 1;
fact(N) when is_integer(N) -> 
    fact(N-1)*N.
Advanced Syntax

Simple Types

Basic types in erlang include:

  • atom - alice
  • integer - 3
  • float - 3.1415
  • pid - a process id number <0.42.0>
  • list - [ things in square brackets ]
  • tuple - { things in curly braces }

Advanced Types

  • binary - a binary data block, <<42>>
  • function - a function, F = fun(X) -> X*X end.
  • port - a path for data to flow to the outside world
  • reference - a unique id over all processes
  • record - the standard erlang data structure

Modules

Adding/Replacing Modules

Erlang is picky about updating or replacing modules of the same name. You should completely remove the old module code from the directory tree, not just rename the containing directory.

Popular Modules

math
gb_sets
lists
regexp: Regular Expressions

Nonstandard Modules

Eunit Unit Testing Module

Object Oriented Programming with erlang

Objects with erlang

Functional Programming with erlang

Fun with folding
Iterator
Simplify Numeric Types (auto-demotion of numerical types)

Example programs

Hello World (Serial)
Hello World (parallel)
Prime Sieve with Linda
Autonomous Agents in Erlang -- def: Autonomous Agent.

Advanced OTP

Databases

ETS programming
DETS programming
Mnesia database

Mnesia

Advanced Erlang

Making parsers with yecc
Evaluation

Projects using erlang

  • CouchDB - a scalable database for Apache
  • Wings3D - a 3-D editor

References

1 - Erlang Man Pages at Erlang,org