3

私は「プログラミング Elixir」に取り組んでいて、「演習: 関数 2」という演習に出くわしました。簡単に言うと、基本的には、最初の 2 つのパラメーターが 0 の場合は Fizzbuzz を、最初のパラメーターが 0 の場合は Fizz を、2 番目のパラメーターが 0 の場合は Buzz を、最初の 2 つのパラメーターのどちらもゼロでない場合は 3 番目のパラメーターを発行する関数をコーディングします。私はこれを思いつきました:

fizzbuzztest = fn
   {0,0,_} -> "FizzBuzz"
   {0,_,_} -> "Fizz"
   {_,0,_} -> "Buzz"
   {_,_,v} -> "#{v}"
end

次のように呼び出されます。

fizzbuzztest.({0,0,8}) # "FizzBuzz"

しかし、私は疑問に思っています-パラメーターをタプルすることなくこれを行う方法はありますか? 3 つの引数を渡してパターン マッチを実行する方法があるはずですが、まだ見つかりません。Elixir の経験者からの提案は大歓迎です。

4

1 に答える 1

5

この特定の演習は、次の方法で解決できます。

fizzbuzztest = fn
   0,0,_ -> "FizzBuzz"
   0,_,_ -> "Fizz"
   _,0,_ -> "Buzz"
   _,_,v -> "#{v}"
end
于 2014-02-04T03:41:36.850 に答える