Size: a a a

2020 June 16

ŹR

Źmićer Rubinštejn in pro.elixir
Но по-моему первые версии так делали
источник

AR

Andrew Rudenko in pro.elixir
Źmićer Rubinštejn
Ну да, в эрланг он мог бы только «транспилироваться»
аст эрланнга это и есть эрланг
источник

AR

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

PG

Pig Greenest in pro.elixir
Andrew Rudenko
аст эрланнга это и есть эрланг
обколются своими скобками и видят везде аст
источник

AR

Andrew Rudenko in pro.elixir
ой как смешно
источник

AR

Andrew Rudenko in pro.elixir
источник

LL

Lama Lover in pro.elixir
Pig Greenest
обколются своими скобками и видят везде аст
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Pig Greenest
обколются своими скобками и видят везде аст
Согласен. Фраза ast и есть язык применима к лиспу разве что
источник

AR

Andrew Rudenko in pro.elixir
ты пишешь на языке который почти не отличается от лиспа и из-за всех сил пытается мыть хомоиконичным
источник

LL

Lama Lover in pro.elixir
Andrew Rudenko
ты пишешь на языке который почти не отличается от лиспа и из-за всех сил пытается мыть хомоиконичным
Удваиваю
источник

LL

Lama Lover in pro.elixir
У elixir лиспоподобное AST
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Ну я рад конечно за вас. Вы ещё скажите что эрланг и lfe - это один и тот же язык.
источник

LL

Lama Lover in pro.elixir
Źmićer Rubinštejn
Ну я рад конечно за вас. Вы ещё скажите что эрланг и lfe - это один и тот же язык.
LFE был классной попыткой побыть лиспом на BEAM, только вот вроде ни одной программы на нём так и не написали
источник

AR

Andrew Rudenko in pro.elixir
короче, это поверхностно, норм есть что-то? )

https://github.com/elixir-lang/elixir/blob/master/lib/elixir/src/elixir_erl_compiler.erl#L45

вот код. как мы видим
a. вызывается v3_core:module
b. результат скармливается compile:noenv_forms

из чего можно сделать вывод, что:

1. эликсир компилируется в Core Erlang формы
2. compile:noenv_forms понимает то, что возвращает v3_core:module

так?

из чего у меня вопрос:
в доках написано (http://erlang.org/doc/man/compile.html#forms-2), что compile:forms принимает Erlang abstract format (http://erlang.org/doc/apps/erts/absform.html). я правильно понимаю, что Core Erlang выражается absform? или в его сабсете? где-то почитать можно? вот я тут нашел https://www.it.uu.se/research/group/hipe/cerl/doc/core_erlang-1.0.3.pdf.
источник

AR

Andrew Rudenko in pro.elixir
Źmićer Rubinštejn
Ну я рад конечно за вас. Вы ещё скажите что эрланг и lfe - это один и тот же язык.
у эрланга синтаксис пролога кстати, который бай дизайн хомоиконочный. поэтому там крутое мета программирование. в эрланге синтаксис взяли, а зачем он такой — забыли )
источник

LL

Lama Lover in pro.elixir
Andrew Rudenko
короче, это поверхностно, норм есть что-то? )

https://github.com/elixir-lang/elixir/blob/master/lib/elixir/src/elixir_erl_compiler.erl#L45

вот код. как мы видим
a. вызывается v3_core:module
b. результат скармливается compile:noenv_forms

из чего можно сделать вывод, что:

1. эликсир компилируется в Core Erlang формы
2. compile:noenv_forms понимает то, что возвращает v3_core:module

так?

из чего у меня вопрос:
в доках написано (http://erlang.org/doc/man/compile.html#forms-2), что compile:forms принимает Erlang abstract format (http://erlang.org/doc/apps/erts/absform.html). я правильно понимаю, что Core Erlang выражается absform? или в его сабсете? где-то почитать можно? вот я тут нашел https://www.it.uu.se/research/group/hipe/cerl/doc/core_erlang-1.0.3.pdf.
Не, он не компилится в core erlang
v3_core:module возвращает absform
источник

AR

Andrew Rudenko in pro.elixir
Lama Lover
Не, он не компилится в core erlang
v3_core:module возвращает absform
ну как не компилится если v3_core:module принимает core erlang?
источник

LL

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

AB

Andrei Burchack in pro.elixir
Andrew Rudenko
2> X = 1,
2> #{{1, X} => Y} = #{{1, 1} => 2}.
* 2: illegal pattern
В 18й версии или даже 17й эрла можно было в ключи мапы закидывать переменные или паттерн (при условии что значение по ключу задавались явно). Потом полечили.
источник

AR

Andrew Rudenko in pro.elixir
Andrew Rudenko
ну как не компилится если v3_core:module принимает core erlang?
я так понимаю Core Erlang это просто такой сабсет absform
источник