Erlang (programming language)/Tutorials: Difference between revisions
Jump to navigation
Jump to search
imported>Eric Evers |
imported>Eric Evers |
||
Line 62: | Line 62: | ||
===Nonstandard Modules=== | ===Nonstandard Modules=== | ||
:[[Erlang_programming_language/Tutorials/eunit|Eunit]] Unit Testing Module | :[[Erlang_programming_language/Tutorials/eunit|Eunit]] Unit Testing Module | ||
==Object Oriented Programming with erlang== | |||
==Functional Programming with erlang== | ==Functional Programming with erlang== |
Revision as of 16:24, 28 October 2008
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.
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
Nonstandard Modules
- Eunit Unit Testing Module
Object Oriented Programming with erlang
Functional Programming with erlang
- 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
Mnesia
Advanced Erlang
Projects using erlang
- CouchDB - a scalable database for Apache
- Wings3D - a 3-D editor