1.introduction why should i use erlang?
Why Should I Use Erlang?
The History of Erlang
Erlangs Characteristics
High-Level Constructs
Concurrent Processes and Message Passing
Scalable, Safe, and Efficient Concurrency
Soft Real-Time Properties
Robustness
Distributed Computation
Integration and Openness
Erlang and Multicore
Case Studies
The AXD301 ATM Switch
CouchDB
Comparing Erlang to C++
How Should I Use Erlang?
2.basic erlang integers
the erlang shell
floats
atoms
booleans
tuples
lists
term comparison
variables
complex data structures
pattern matching
functions
modules
exercises
3.sequential erlang conditional evaluations
guards
built-in functions
recursion
runtime errors
handling errors
library modules
the debugger
exercises
4.concurrent programming creating processes
message passing
receiving messages
registered processes
timeouts
benchmarking
process skeletons
tail recursion and memory leaks
a case study on concurrency-oriented programming
race conditions, deadlocks, and process starvation
the process manager
exercises
5.process design patterns client/server models
a process pattern example
finite state machines
event managers and handlers
exercises
6.process error handling process links and exit signals
robust systems
exercises
7.records and macros records
macros
exercises
8.software upgrade upgrading modules
behind the scenes
upgrading processes
the .erlang file
exercise
9.more data types and high-level constructs functional programming for real
funs and higher-order functions
list comprehensions
binaries and serialization
references
exercises
10.ets and dets tables ets tables
dets tables
a mobile subscriber database example
exercises
11.distributed programming in erlang distributed systems in erlang
distributed computing in erlang: the basics
the epmd process
exercises
12.otp behaviors introduction to otp behaviors
generic servers
supervisors
applications
release handling
other behaviors and further reading
exercises
13.introducing mnesia when to use mnesia
configuring mnesia
transactions
partitioned networks
further reading
exercises
14.gui programming with wxerlang wxwidgets
wxerlang: an erlang binding for wxwidgets
a first example: microblog
the miniblog example
obtaining and running wxerlang
exercises
15.socket programming user datagram protocol
transmission control protocol
the inet module
further reading
exercises
16.interfacing erlang with other programming languages an overview of interworking
interworking with java
c nodes
erlang from the unix shell: erl_call
port programs
library support for communication
linked-in drivers and the ffi
exercises
17.trace bifs, the dbg tracer, and match specifications introduction
the trace bifs
tracing calls with the trace_pattern bif
the dbg tracer
match specifications: the fun syntax
match specifications: the nuts and bolts
further reading
exercises
18.types and documentation types in erlang
typer: success types and type inference
documentation with edoc
exercises
19.eunit and test-driven development test-driven development
eunit
the eunit infrastructure
testing state-based systems
testing concurrent programs in erlang
exercises
20.style and efficiency applications and modules
processes and concurrency
stylistic conventions
coding strategies
efficiency
and finally
appendix: using erlang
index
· · · · · · (
收起)