Size: a a a

2020 June 09

LL

Lama Lover in pro.elixir
Yauheni Tsiarokhin
ну это ж домашняя забава так что не страшно

а чего жутко то?
Я бы сделал что-то типа
defmacro def_msg(code, msg, data) do
 quote do
   def msg(unquote(code), unquote(data)) do
     unquote(msg)
   end
 end
end
источник

LL

Lama Lover in pro.elixir
Тогда проблем с контекстом не будет
источник

YT

Yauheni Tsiarokhin in pro.elixir
так дата в ранайме известна только
источник

LL

Lama Lover in pro.elixir
Yauheni Tsiarokhin
так дата в ранайме известна только
Ты просто немного не просёк за макросы
источник

LL

Lama Lover in pro.elixir
Типа если передать что-то аргументом в defmacro, то передадутся не значения, а ast
источник

F

Fenrir in pro.elixir
Сегодня прям прорвало всех
источник

LL

Lama Lover in pro.elixir
Типа ты сможешь тогда писать что-то вроде
def_msg(:TEST, "TEST: #{this_is_data}", this_is_data)


Тут у тебя переменная в твоём сообщении не берётся из воздуха, а её имя указывается третьим аргументом
источник

LL

Lama Lover in pro.elixir
Но мне лично кажется, что лучше будет просто объявлять def msg(:TEST, data), do: "TEST: #{data}"
источник

F

Fenrir in pro.elixir
Тогда и от меня нубский вопрос.
источник

AB

Alex Bubnov in pro.elixir
Lama Lover
Типа ты сможешь тогда писать что-то вроде
def_msg(:TEST, "TEST: #{this_is_data}", this_is_data)


Тут у тебя переменная в твоём сообщении не берётся из воздуха, а её имя указывается третьим аргументом
но зачем? просто потому что "нильзя использовать var!"?
источник

LL

Lama Lover in pro.elixir
Типа весь этот def_msg - это борьба с мельницами зачем-то, которая экономит пять нажатий по клавиатуре
источник

YT

Yauheni Tsiarokhin in pro.elixir
Lama Lover
Но мне лично кажется, что лучше будет просто объявлять def msg(:TEST, data), do: "TEST: #{data}"
так сейчас и так я постоянно чтото щабываю задефайнтть
источник

F

Fenrir in pro.elixir
Читаю книжку года 2016 вроде. И там вызов s функции. Но мне пишет что нет такой функции.
источник

F

Fenrir in pro.elixir
В эликсире была когда-нибудь такая функция?
источник

LL

Lama Lover in pro.elixir
Fenrir
Читаю книжку года 2016 вроде. И там вызов s функции. Но мне пишет что нет такой функции.
В iex лучше пользоваться h
источник

F

Fenrir in pro.elixir
В help'е нет такой функции
источник

LL

Lama Lover in pro.elixir
Alex Bubnov
но зачем? просто потому что "нильзя использовать var!"?
Затем что макросы просто обычно нежелательны, потому что реально усложняют читаемость кода
Его решение
1) Нечистое
2) Непонятное из-за того что нечистое
3) Не экономит вообще ни строки кода, даже наоборот
4) Бесполезное просто
источник

F

Fenrir in pro.elixir
В целом не критично. Может материал книги немного устарел.
источник

LL

Lama Lover in pro.elixir
Типа я же на @elixir_meetup_online_1 рассказывал про пунктики, которые желательно соблюдать когда пишешь макрос

Вот что-то такое у меня в антипаттернах там
источник

АР

Антон Реут in pro.elixir
Fenrir
В целом не критично. Может материал книги немного устарел.
Это самое жуткое, я купил курс по фениксу, очень понятный и удобный и чувак говорит, у вас есть папка model, а папки model уже три года как нет и вообще все делают генераторы
источник