-2
私はハスケルを初めて使い、次の2つの機能をどのように実現できるかを考えようとしています。ハスケル:3つの変数内の別個の値を調べて、別個の変数を数えてください。
- 入力3つの整数およびそれらの2が等しいかどうかを確認(例えば
1,2,2 -> true
と1,2,3 -> false
) - 入力3つの整数と異なる値(例えば
1,1,2 -> 2
)
を数えるありがとうございました。
私はハスケルを初めて使い、次の2つの機能をどのように実現できるかを考えようとしています。ハスケル:3つの変数内の別個の値を調べて、別個の変数を数えてください。
1,2,2 -> true
と1,2,3 -> false
)1,1,2 -> 2
)を数えるありがとうございました。
ソート、グループの要素と異なる要素の数は数よりも少なくなります重複がある場合、あなたに
distinct = length . group . sort
は、上記の定義を使用して個別の要素のカウントを与える等価クラスを数えます要素の
dups = liftM2 (/=) length distinct
これは単に
dups x = length x /= distinct x
(あなたは 'distinct'が型署名を必要としている、そうでなければmonomorphism制限モンスターがあなたを得ます) – luqui
こんにちは、それを書くの手の込んだ方法!これまでに何を試しましたか?なぜそれは動作しませんでしたか?あなたはどうやってやるのか分かりませんでしたか? – rampion
5つのすべてのケースを明示的に 'if' /' else'(あるいは必要ならガード)とマッチさせてください。その後、単純化する。 – Bergi
あなたの入力がリストである場合は特に、 'nub'はあなたの友人です。 – Bergi