Я работаю над «Программированием эликсира», и я наткнулся на упражнение «Упражнение: функции 2». Короче говоря, в основном код функции, которая испускает Fizzbuzz, если первые два параметра равны 0, Fizz, если первый параметр равен 0, Buzz, если второй параметр равен 0 и третий параметр, если ни один из первых двух не равен нулю. Я пришел с этим:Могу ли я избежать чередующихся параметров в этой функции анонимного эликсира?
fizzbuzztest = fn
{0,0,_} -> "FizzBuzz"
{0,_,_} -> "Fizz"
{_,0,_} -> "Buzz"
{_,_,v} -> "#{v}"
end
Названный так:
fizzbuzztest.({0,0,8}) # "FizzBuzz"
Но мне интересно, - есть какой-то способ сделать это без того, чтобы кортеж параметров? Кажется, должен быть какой-то способ передать три аргумента и обработать совпадение шаблонов, но я еще не нашел его. Любые предложения от тех, кто более опытен с Elixir, будут приветствоваться.
Не знаю, почему я предположил, что я должен был бы кортеж параметров, чтобы получить эту работу. Благодарю. –
Ранние примеры 'fn' не дают понять, что вы можете сопоставить аргументы с образцом, как указано выше. Почти все находятся в форме 'a = fn (arg1, argn) end' –