AB
Size: a a a
AB
AB
ŹR
AB
&1
используются генеренные из автоинкрементного счетчика переменныеAB
a
- [{:clause, 2, [{:var, 0, :_@1}], [], [{:var, 0, :_@1}]}]
b
- [{:clause, 4, [{:var, 0, :_@2}], [], [{:var, 0, :_@2}]}]
AB
ŹR
AB
ŹR
iex(10)> {a, b} = {fn x -> x end, fn x -> x end}
{#Function<44.97283095/1 in :erl_eval.expr/5>,
#Function<44.97283095/1 in :erl_eval.expr/5>}
iex(11)> Function.info a
[
pid: #PID<0.106.0>,
module: :erl_eval,
new_index: 44,
new_uniq: <<185, 141, 130, 234, 14, 153, 66, 78, 193, 152, 184, 59, 233, 148,
90, 79>>,
index: 44,
uniq: 97283095,
name: :"-expr/5-fun-4-",
arity: 1,
env: [
{[], :none, :none,
[{:clause, 10, [{:var, 10, :_x@1}], [], [{:var, 10, :_x@1}]}]}
],
type: :local
]
iex(12)> Function.info b
[
pid: #PID<0.106.0>,
module: :erl_eval,
new_index: 44,
new_uniq: <<185, 141, 130, 234, 14, 153, 66, 78, 193, 152, 184, 59, 233, 148,
90, 79>>,
index: 44,
uniq: 97283095,
name: :"-expr/5-fun-4-",
arity: 1,
env: [
{[], :none, :none,
[{:clause, 10, [{:var, 10, :_x@2}], [], [{:var, 10, :_x@2}]}]}
],
type: :local
]
ŹR
ŹR
ŹR
LL
AB
LL
AB
defmodule Laundry do
def t(v) do
fn (x) -> x + v end
end
end
iex(2)> a = Laundry.t(1)
#Function<0.87617645/1 in Laundry.t/1>
iex(3)> b = Laundry.t(1)
#Function<0.87617645/1 in Laundry.t/1>
iex(4)> c = Laundry.t(2)
#Function<0.87617645/1 in Laundry.t/1>
iex(5)> a == b
true
iex(6)> a == c
false
ŹR
defmodule Laundry do
def t(v) do
fn (x) -> x + v end
end
end
iex(2)> a = Laundry.t(1)
#Function<0.87617645/1 in Laundry.t/1>
iex(3)> b = Laundry.t(1)
#Function<0.87617645/1 in Laundry.t/1>
iex(4)> c = Laundry.t(2)
#Function<0.87617645/1 in Laundry.t/1>
iex(5)> a == b
true
iex(6)> a == c
false
AB
ŹR
LL