Branch :
fn (x) { x }
fn (x, _y) { x }
fn ([x | _y]) { x }
fn {
([]) { :error }
([x | _y]) { x }
(_) { :error }
}
fn (x) do
"Hello, world !"
x * 2
end
fn (x) { x }
1
fn (x, _y) { x }
1
fn ([x | _y]) { x }
1
fn {
([]) { :error }
([x | _y]) { x }
(_) { :error2 }
}
1
fn (x) do
"Hello, world !"
x * 2
end
4
do
f = fn (x) do
puts("Hello, world !")
x * 2
end
f(2)
end
Hello, world !
4
f = fn (x) { fn (y) { x * y } }
fn (x) { fn (y) { x * y } }
g = f(2)
fn (y) { x * y } [x: 2]
g(3)
6
h = fn (x) { unwind_protect(do
puts("a")
return x * 2
-1
end, puts("b")) }
fn (x) { unwind_protect(do
puts("a")
return x * 2
-1
end, puts("b")) }
h(21)
a
b
42