Size: a a a

2020 October 16

AB

Alex Bubnov in pro.elixir
не, всё логично
источник

AB

Alex Bubnov in pro.elixir
в этих функциях из репла сравнивается по значению fun_info[:env]
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Alex Bubnov
не, всё логично
Лучше уже всегда false
источник

AB

Alex Bubnov in pro.elixir
в эликсире для &1 используются генеренные из автоинкрементного счетчика переменные
источник

AB

Alex Bubnov in pro.elixir
в a - [{:clause, 2, [{:var, 0, :_@1}], [], [{:var, 0, :_@1}]}]
в b - [{:clause, 4, [{:var, 0, :_@2}], [], [{:var, 0, :_@2}]}]
источник

AB

Alex Bubnov in pro.elixir
отдельный интересный вопрос, что будет происходить с "настоящими" анонимными функциями, у которых есть модуль
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Он берет номер строки
источник

AB

Alex Bubnov in pro.elixir
Źmićer Rubinštejn
Лучше уже всегда false
да, это было бы определенно лучше.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
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

Źmićer Rubinštejn in pro.elixir
А в одной строке он инкрементит
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Поэтому его никак не наебать
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Либо строчка разная, либо после @
источник

LL

Lama Lover in pro.elixir
Alex Bubnov
да, это было бы определенно лучше.
А по-моему, было бы лучше если бы контексты нормально сравнивались
источник

AB

Alex Bubnov in pro.elixir
Lama Lover
А по-моему, было бы лучше если бы контексты нормально сравнивались
а для "нормальных" анонимных функций так и есть, лол
источник

LL

Lama Lover in pro.elixir
Alex Bubnov
а для "нормальных" анонимных функций так и есть, лол
Что значит "нормальных" ?
источник

AB

Alex Bubnov in pro.elixir
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

Źmićer Rubinštejn in pro.elixir
Alex Bubnov
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

Alex Bubnov in pro.elixir
Lama Lover
Что значит "нормальных" ?
которые в модуле, а не в репле
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Надо статью пилить походу
источник

LL

Lama Lover in pro.elixir
Alex Bubnov
которые в модуле, а не в репле
А, ну тут да
источник