Size: a a a

2020 September 01

LL

Lama Lover in pro.elixir
Но это всё равно очень удобно. У любого приложения есть стейт, а когда к этому стейту ещё можно обратиться или его ручками пофиксить во время исполнения, так это вообще шикарно. И, если что, такие приятные фичи есть только в эрланге
источник

AB

Alex Bubnov in pro.elixir
Lama Lover
Но это всё равно очень удобно. У любого приложения есть стейт, а когда к этому стейту ещё можно обратиться или его ручками пофиксить во время исполнения, так это вообще шикарно. И, если что, такие приятные фичи есть только в эрланге
к этому уже достаточно близко подбирается кложа с тулингом типа integrant и удаленными реплами.
источник

AB

Alex Bubnov in pro.elixir
конечно, там интроспекция послабее, потому что jvm внутри, но уже неплохо
источник

V

VDimir in pro.elixir
Pig Greenest
Лооол
В хаскель в каждой функции будет явная декларация, если в ней используется stm или что-то другое, чтобы воспользоваться этим механизмом нужно заранее об этом подумать и обозначить, в этом смысле сложнее
источник

V

VDimir in pro.elixir
Lama Lover
По-моему, эрланг внутри процесса достаточно функциональный. А вот во вне...
Вообще этот разговор о том, где какая парадигма, обречен на провал, можно вспомнить что Армстронг говорил что эрланг самый настоящий ооп, в отличие от джава и си плюс плюс )
источник

LL

Lama Lover in pro.elixir
VDimir
Вообще этот разговор о том, где какая парадигма, обречен на провал, можно вспомнить что Армстронг говорил что эрланг самый настоящий ооп, в отличие от джава и си плюс плюс )
Армстронг говорил что erlang — самый настоящий ООП в понимании одного-единственного человека (Алана Кея)
источник

V

VDimir in pro.elixir
Ну да, который и ввел термин
источник
2020 September 02

V

V in pro.elixir
Lama Lover
Армстронг говорил что erlang — самый настоящий ООП в понимании одного-единственного человека (Алана Кея)
А как же smalltalk?
источник

РП

Радж Полиновский... in pro.elixir
Всем привет)
Подскажите, есть ли у Феникса консольная команда для создания приложения
источник

ŹR

Źmićer Rubinštejn in pro.elixir
источник

РП

Радж Полиновский... in pro.elixir
)
источник

ŹR

Źmićer Rubinštejn in pro.elixir
источник

В

Владислав in pro.elixir
Доброго времени суток всем)
Есть проблема.
defmodule Foo do
@before_compile Baz.FooManager
@some_bar [10, 11]
def call_some_bar, do: @some_bar
end

defmodule Baz.Foomanager do
defmacro __before_compile___(env) do
value = Module.get_attribute(env.module, :some_bar)
Module.put_attribute(env.module, :some_bar, [9 | value])
end
end

iex> Foo.call_some_bar
#=> [10, 11]


Есть ли решение, которое будет изменять значение аттрибута в функциях?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Владислав
Доброго времени суток всем)
Есть проблема.
defmodule Foo do
@before_compile Baz.FooManager
@some_bar [10, 11]
def call_some_bar, do: @some_bar
end

defmodule Baz.Foomanager do
defmacro __before_compile___(env) do
value = Module.get_attribute(env.module, :some_bar)
Module.put_attribute(env.module, :some_bar, [9 | value])
end
end

iex> Foo.call_some_bar
#=> [10, 11]


Есть ли решение, которое будет изменять значение аттрибута в функциях?
def call_some_bar должно быть внутри макроса
источник

В

Владислав in pro.elixir
Źmićer Rubinštejn
def call_some_bar должно быть внутри макроса
Предлагаете как-то так:
defmodule Baz.Foomanager do
defmacro __before_compile___(env) do
value = Module.get_attribute(env.module, :some_bar)
Module.put_attribute(env.module, :some_bar, [9 | value])
some_calling = quote do
def call_some_bar, do: @some_bar
end
Module.eval_quoted(env.module, some_calling)
end

?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Ничего не предлагаю, я понятия не имею что ты там хочешь сделать
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Кстати, ты понимаешь разницу между before compile и after compile?
источник

В

Владислав in pro.elixir
Думаю, что да) Но почему возникает такой вопрос?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Владислав
Доброго времени суток всем)
Есть проблема.
defmodule Foo do
@before_compile Baz.FooManager
@some_bar [10, 11]
def call_some_bar, do: @some_bar
end

defmodule Baz.Foomanager do
defmacro __before_compile___(env) do
value = Module.get_attribute(env.module, :some_bar)
Module.put_attribute(env.module, :some_bar, [9 | value])
end
end

iex> Foo.call_some_bar
#=> [10, 11]


Есть ли решение, которое будет изменять значение аттрибута в функциях?
Ну потому что ты сперва модифицируешь атрибут, а потом его пересоздаешь
источник

РП

Радж Полиновский... in pro.elixir
Я имел ввиду такие аналоги Джанго как  startapp.
mix phx.new - это startproject
источник