A Deadlock Holiday What to do now there's no Moore's Law?
Finally we come to my hot tip for concurrency champion. Erlang
is the functional language that differentiates itself from its
competition by having been around for nearly 25 years. No danger
of being burned by V1.0 compiler bugs, then. Erlang has a very
different paradigm from procedural languages. For one thing, its
so-called variables are WORM (Write Once Read Many), like 1990s
backup media. Presumably its designers at Ericsson thought to
encourage programmers to jolly well get it right first time. The
style of programming relies heavily on recursion and pattern
matching. For example, a simple Erlang routine to perform a
factorial might exploit the fact that, for example, 20! = 21! /
21 Generalising this into code, and adding pattern matching to
supply the stopping condition, we have a definition for a
fact(∞) -> ∞; % Exploit the fact that ∞! = ∞; fact(N) ->
fact(N+1)/(N+1). Don't worry about that use of very large
numbers there - Erlang uses arbitra