0

draw変数とhand変数はリストです。一番上のカードをドローから外して手札に加えたい。これは機能です:

def pick_up_card(draw, hand) do
  [new_card | new_draw ] = draw
  {hand ++ [new_card], new_draw}
end

[head | head | tail] パラメータリストの部分:

def pick_up_card([new_card | new_draw], hand) do
  {hand ++ [new_card], new_draw}
end

それはより慣用的なエリクサーでしょうか?可読性を損なうでしょうか?関数定義に Head|Tail 呼び出しではなく、着信リストの名前が含まれていれば、後でコードが読みやすくなると思います。

それは個人的な好みの問題ですか、それともそのコード行を保存して、関数定義に Head|Tail 呼び出しを貼り付けた方がよいでしょうか?

4

1 に答える 1

3

私の意見では、パラメーターリストに入れる方が良いでしょう。おそらく別の句を書きたいと思うでしょう

def pick_up_card([], _), do: raise "何もピックアップしない"

近い将来ですね。:) または、他の特殊なケースに注意してください-最初からヘッダーに配置することをお勧めします.

于 2014-01-12T01:27:28.510 に答える