Size: a a a

2019 January 24

AB

Alex Bubnov in pro.elixir
Максим Барулин
это понятно
можешь руками написать
источник

ŹR

Źmićer Rubinštejn in pro.elixir
А эрланге нету никаких кейвордов
источник

AB

Alex Bubnov in pro.elixir
Źmićer Rubinštejn
Потому что Keyword это синтаксический сахар для списка из туплов из двух элементов, первый их которых атом
потому что кто-то решил, что они слишком крутые для обычных проплистов
источник

ŹR

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

ŹR

Źmićer Rubinštejn in pro.elixir
И больше ни для чего
источник

AB

Alex Bubnov in pro.elixir
Źmićer Rubinštejn
И больше ни для чего
вот только это имело абсолютно омерзительные последствия
источник

ŹR

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

AB

Alex Bubnov in pro.elixir
Alex Bubnov
вот только это имело абсолютно омерзительные последствия
например то, что put_in/update_in не умеют создавать вложенные пути в мапах
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Это как бы неплохо наверное, с учетом гвоздем прибитой арности в beam
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Просто нужно понимать что такое Keyword и где он нужен. И чем он отличается он списка туплов
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Ну и самое главное - не искать добра от добра: в этом случае фильтр пишется в одну строчку же
источник

ŹR

Źmićer Rubinštejn in pro.elixir
И не очень понятно зачем это как-то оптимизировать
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Кстати, одна из незадокументировааных функций кейворда - разбирать :ok :error туплы
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Если они конечно правильно написаны
источник

ŹR

Źmićer Rubinštejn in pro.elixir
К примеру можно мапнуть функцию, которая возвращает такой тупл, а в конце дернуть Keyword.get_values(:ok) чтобы получить торлько успешные значение
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Одновременно разворачиваешь монаду и фильтруешь
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Такой себе лайфхак, но все же
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Максим Барулин
почему тупой? вот мне например ни разу не понятно странное ограничение на атом в Keyword
Извини, тупой относилось к формулировке "Есть ли другие варианты кроме фильтр", а не к самому вопросу.
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Максим Барулин
Подскажите как из такого списка:
[{"0", "val1"}, {"2", "val2"}, {"0", "val3"}] найти все элементы с заданным ключём? Keyword.get_values падает, так как ключ должен быть атомом, а List.keyfind возвращает только первое значение. Кроме как фильтром есть варианты?
:proplists.get_all_values("0", [{"0", "val1"}, {"2", "val2"}, {"0", "val3"}])
источник

МБ

Максим Барулин in pro.elixir
Dmitry Russ (Aleksandrov)
:proplists.get_all_values("0", [{"0", "val1"}, {"2", "val2"}, {"0", "val3"}])
👍 блин, забыл совсем про родной эрланговский модуль
источник