Size: a a a

2018 November 09

SG

Shumilkin Gena in pro.elixir
Евгений
хм, интересно, даже проще
def foo(key, %{key => value}) do
Говорил же попробуй без крышечки)
источник

Е

Евгений in pro.elixir
ща попробую :)
источник

AB

Alexey Bolshakov in pro.elixir
аххах. получается взять значение из мапы по ключу:
def foo(key, %{key => value}), do: value
источник

AB

Alexey Bolshakov in pro.elixir
если их еще местами поменять, чтоб мапа первой стояла
источник

Е

Евгений in pro.elixir
обломитесь, господа:
cannot use variable key as map key inside a pattern. Map keys in patterns can only be literals (such as atoms, strings, tuples, etc) or an existing variable matched with the pin operator (such as ^some_var)
источник

SG

Shumilkin Gena in pro.elixir
Ну о чем и речь
источник

Е

Евгений in pro.elixir
Alexey Bolshakov
аххах. получается взять значение из мапы по ключу:
def foo(key, %{key => value}), do: value
да, это именно и хотелось чтобы без кейсов внутри
источник

Е

Евгений in pro.elixir
Shumilkin Gena
Ну о чем и речь
ну, с крышечкой можно, но не в параметрах функции
источник

Е

Евгений in pro.elixir
бяда, какой-нибудь хаскель небось такие фокусы позволяет
источник

SG

Shumilkin Gena in pro.elixir
Да вряд ли, тут логическая неоднозначность. Представь, что ты компилятор и попробуй понять, что от тебя хотят
источник

Е

Евгений in pro.elixir
по-моему все однозначно, стоит переменная с крышкой, значит она должна существовать, отложим этот параметр на потом, и поищем в других параметрах
источник

SG

Shumilkin Gena in pro.elixir
Переменная наделяется содержимым в рантайме, а тут надо функцию скомпилить
источник

Е

Евгений in pro.elixir
ну паттерн-матчинг с рантайм содержимым вполне работает, если не в параметрах функции
источник

Е

Евгений in pro.elixir
можно развернуть в
def foo(key, map) do
 %{^key => value} = map
источник

AB

Alexey Bolshakov in pro.elixir
какие странные у вас фантазии
источник

Е

Евгений in pro.elixir
Alexey Bolshakov
какие странные у вас фантазии
ну я не вижу ни одной причины, почему такой паттерн-матчин нельзя сделать.  По мне так - это просто ограничение компилятора
источник

Е

Евгений in pro.elixir
никаких логических неоднозначностей нет
источник

Е

Евгений in pro.elixir
тут же народ выступает за крутой паттерн-матчинг в параметрах функции вместо "убогих" case
источник

AB

Alexey Bolshakov in pro.elixir
это радикалы
источник

Е

Евгений in pro.elixir
ради чего?
источник