Size: a a a

2020 June 16

PG

Pig Greenest in pro.elixir
в эрланге пишут
Foo1 = ...
Foo2 = ...(Foo1, ...)
Foo3 = ...(Foo2, ...)
источник

PG

Pig Greenest in pro.elixir
что это, если не SSA?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Andrew Rudenko
ага, это вот разница с эликсиром, который требует эксплицитно ^ к проинициализированным переменным добавлять? а в чем разница на уровне байткода?
Цифарки поприбавляет в байт-коде и все
источник

AR

Andrew Rudenko in pro.elixir
Pig Greenest
в эрланге пишут
Foo1 = ...
Foo2 = ...(Foo1, ...)
Foo3 = ...(Foo2, ...)
у тебя и слева и справа могут быть произвольные термы
источник

AR

Andrew Rudenko in pro.elixir
это называется Logic и Unification, что довольно далеко от SSA 🙂
источник

a

arikai in pro.elixir
Andrew Rudenko
ага, это вот разница с эликсиром, который требует эксплицитно ^ к проинициализированным переменным добавлять? а в чем разница на уровне байткода?
Не забывайте, что Эликсир не сам компилирует код в байт-код
Он преобразует Elixir, ЕМНИП, в т.н. Core Erlang, откуда уже эрланговый компилятор всё это дело компилирует в байткод со всеми промежуточными представлениями.
источник

PG

Pig Greenest in pro.elixir
Andrew Rudenko
у тебя и слева и справа могут быть произвольные термы
но ты понял, что я имел ввиду?
источник

AR

Andrew Rudenko in pro.elixir
я понимаю, это валидный поинт ) эрланг просто взял это из пролога, хотя смысла этого в нем особого не имеет )
источник

PG

Pig Greenest in pro.elixir
мб, с моей точки зрения это вопрос дефолтов, в эрланге дефолт это матч, а в эликсире связывание и для матча отдельный оператор ^
источник

RP

Roman Pushkov in pro.elixir
Pig Greenest
в эрланге пишут
Foo1 = ...
Foo2 = ...(Foo1, ...)
Foo3 = ...(Foo2, ...)
ничто не мешает написать свёртку по списку функций тащемта
источник

LL

Lama Lover in pro.elixir
Andrew Rudenko
у программистов ничего не появилось, они просто начали использовать математический термин в том же контексте. а потом пришли другие программисты и в своих япах начали называть тем же термином совершенно другое, введя путаницу. ну рад за них, их говно япы скоро умрут, а трушные эрланги с эликсирами с их нормальными переменными останутся, терминологическая путаница уйдет сама собой )
удваиваю
источник

PG

Pig Greenest in pro.elixir
Roman Pushkov
ничто не мешает написать свёртку по списку функций тащемта
это ответ в стиле хаскелиста
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Roman Pushkov
ничто не мешает написать свёртку по списку функций тащемта
Да не, это фигня какая это
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Когда захочешь вставить io:puts Foo1 поймёшь
источник

RP

Roman Pushkov in pro.elixir
а в чём проблема?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Ну у тебя нету Foo1 )
источник

LL

Lama Lover in pro.elixir
Andrew Rudenko
ага, это вот разница с эликсиром, который требует эксплицитно ^ к проинициализированным переменным добавлять? а в чем разница на уровне байткода?
Это неудобно, когда генерируешь код
И не совсем нормально работает

Например,
iex> x = 1
iex> %{{1, x} => y} = %{{1, 1} => 2}

Упадёт и тут нигде нельзя поставить ^
источник

ŹR

Źmićer Rubinštejn in pro.elixir
В эликсире inspect возвращает то что в него засунул, а в эрланге ok
источник

LL

Lama Lover in pro.elixir
Roman Pushkov
ничто не мешает написать свёртку по списку функций тащемта
Что ты имеешь в виду?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Короче идеальный код разбивается о прод - как всегда
источник