Size: a a a

Эликсир и Вунш

2020 February 08

SM

Sergei Maximov in Эликсир и Вунш
Lama Lover
defmodule Playground do
 @type t :: integer()
end

defmodule Playground.Macro do
 defmacro m({{:".", _, [module, _type] }, _, []}) do
   module = Macro.expand(module, __CALLER__)
   IO.inspect Code.Typespec.fetch_types(module), label: :here
 end
end

defmodule Playground2 do
 require Playground.Macro

 def f() do
   Playground.Macro.m(Playground.t())
 end

end


Выведет here: :error при компиляции
А не пробовал вызывать Code.ensure_compiled перед Code.Typespec.fetch_types?

UPD: Не работает
источник

LL

Lama Lover in Эликсир и Вунш
Sergei Maximov
А не пробовал вызывать Code.ensure_compiled перед Code.Typespec.fetch_types?

UPD: Не работает
Да, пробовал
источник

LL

Lama Lover in Эликсир и Вунш
Sergei Maximov
А не пробовал вызывать Code.ensure_compiled перед Code.Typespec.fetch_types?

UPD: Не работает
Суть в том, что все приложения компилируются параллельно, а основное приложение компилируется самым последним из приложений, поэтому например, fetch_types(String) будет работать, а fetch_types(MyApp.Module) не будет
источник

SM

Sergei Maximov in Эликсир и Вунш
Lama Lover
Суть в том, что все приложения компилируются параллельно, а основное приложение компилируется самым последним из приложений, поэтому например, fetch_types(String) будет работать, а fetch_types(MyApp.Module) не будет
А, ну понятно:

> If the module was not compiled yet, ensure_compiled/1 halts the compilation of the caller until the module given to ensure_compiled/1 becomes available or all files for the current project have been compiled
источник
2020 February 09

M

Marperia in Эликсир и Вунш
Простой вопрос, недавно начал писать на эликсире. В языке есть паттерн мэтчинг по регуляркам или чему-то подобному?

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

M

Marperia in Эликсир и Вунш
Например, для «сегодня у нас будет бабушка на ужин» шаблон «у нас будет», спарсить нужно бабушку на ужин
источник

МБ

Максим Барулин in Эликсир и Вунш
Можно использовать матчинг по части строки
источник

МБ

Максим Барулин in Эликсир и Вунш
"string" <> var
источник

МБ

Максим Барулин in Эликсир и Вунш
Но есть ограничения
источник

SM

Sergei Maximov in Эликсир и Вунш
Marperia
Простой вопрос, недавно начал писать на эликсире. В языке есть паттерн мэтчинг по регуляркам или чему-то подобному?

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

M

Marperia in Эликсир и Вунш
Максим Барулин
Можно использовать матчинг по части строки
А если шаблонов штук пять-пятнадцать?
источник

МБ

Максим Барулин in Эликсир и Вунш
Можно, наверно, через гвардов попробовать, не помню можно в них проверять наличие подстрок или нет
источник

IK

Ihor Katkov in Эликсир и Вунш
Marperia
Например, для «сегодня у нас будет бабушка на ужин» шаблон «у нас будет», спарсить нужно бабушку на ужин
Скинь реальные примеры инпутов
источник

RP

Roman Pushkov in Эликсир и Вунш
источник

M

Marperia in Эликсир и Вунш
Ihor Katkov
Скинь реальные примеры инпутов
Так это и есть практически реальный пример, правда данных на одно сообщение чуть больше
источник

IK

Ihor Katkov in Эликсир и Вунш
Marperia
Так это и есть практически реальный пример, правда данных на одно сообщение чуть больше
другими словами, “сегодня будет у нас на ужин бабушка” тоже валидный пример?
источник

AD

Anastasiya Dyachenko in Эликсир и Вунш
Marperia
Простой вопрос, недавно начал писать на эликсире. В языке есть паттерн мэтчинг по регуляркам или чему-то подобному?

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

M

Marperia in Эликсир и Вунш
Могу другое

Завтра перед нами выступит Максим, если повезёт — даже споёт
В конце вечера встречайте диджея тли. Цена билетов 100 рублей обычный, 150 ВИП, 220 с бесплатным баром
источник

M

Marperia in Эликсир и Вунш
Спарсить всё, что после выступит до знака препинания, после встречайте и цена билетов вроде как три разных параметра
источник

M

Marperia in Эликсир и Вунш
Знаю есть какие-то штуки, которыми URL парситься, но переделывать или с нуля писать думаю будет трудно
источник