– erlang.org
Erlang is a programming language used to build massively scalable
soft real-time systems with requirements on high availability.
Erlang's runtime system has built-in support for concurrency,
distribution and fault tolerance.
Slide 4
Slide 4 text
Anonymous functions
iex> Enum.map [1, 2, 3], fn n -> n * 2 end
[2, 4, 6]
iex> Enum.map [1, 2, 3], &(&1 * 2)
[2, 4, 6]
Slide 5
Slide 5 text
Named functions & modules
defmodule Greeter do
def greet(name) do
IO.puts "Hello, #{name}"
end
end
iex> Greeter.greet("James")
"Hello, James"
iex> Enum.each ["john", “paul”], &Greeter.greet/1
"Hello, john"
"Hello, paul"
Slide 6
Slide 6 text
defmodule MyMap do
!
!
!
!
!
end
Pattern matching
!
def map([], _), do: []
!
!
!
def map([head | tail], fun) do
[fun.(head) | map(tail, fun)]
end
Assert
defmodule TruthTest do
use ExUnit.Case
test "considers two strings equal" do
assert "foo" == "bar"
end
end
!
!
!
!
!
!
!
!
1) test considers two strings equal (TruthTest)
** (ExUnit.ExpectationError)
expected: "foo"
to be equal to (==): "bar"
at test/demo/truth_test.exs:5