ハスケルで最も標準的な方法は何ですか?ハスケルでXORのどちらが良いと思われますか
最初の1つは、2つの引数(ほとんどの場合)が必要であることを明確に示しています。
2番目の句に2番目の句には関数呼び出し(id
)が含まれているため、最初の実装では2番目の引数を単に返すことができるため、効率が悪いはずです。
私は最初の方が優れていると思う傾向があります。読みやすく、何をしているのかを把握し、関数呼び出しを保存しておく必要があります。
しかし私はHaskellの初心者です。おそらくこのコンパイラはこの余分な呼び出しを最適化します。
xor :: Bool -> Bool -> Bool
xor True x = not x
xor False x = x
xor True = not
xor False = id
また、私はそこにワイルドカードで両方False
を置き換えることができますかどうかを知りたいと思います。
だから、ハスケルの良い習慣は何ですか?たぶん別の実装ですか?
[1]それはよく知られている機能であり、それが重要ではない機能であると考えてみましょう。
ありがとう
Sこれらは同じです...この明確なデモのおかげで(そしてGHCのヒントのために、非常に便利です) – niahoo