2つの数値を比較するために再帰を使用します(例123は123と同じです)。共通の桁数を格納します(123は123と3、124は2です)。Haskell compare issue
私のプログラムは、私は(彼らは共通の出力値44で2桁の数字を持っている場合、または、彼らは3等他の何かを持っている場合例)どのような状況のための条件を入れたいという番号を見つけませんが、何の比較は行われません一方。誰かが私に何を説明してください、なぜそれが起こるのですか?ここに私のコード:
dg :: Int->Int->Int
dg 0 0 = 0
dg x y = if (c==2) then 23 else 24 -- c = common digits
where c = digits (x `div` 10) (y `div` 10) + if (x `mod` 10 == y `mod` 10) then 1 else 0
は私が削除抱擁を実行し、出力は2ですが、私はそれをそれを残し、再実行するとき、それは24になり、入力10 10を与え、条件「IF」(23が正しいながら)。私は本当に混乱しています。 2 Int
に共通しているどのように多くの桁数を見つけるために
私は喜んで、その後 '[シャア]に、両方の数字を回し'となりリストを比較して、 '共通L1 L2 =のようななめらか[ e1 | e1 < - l1、elem e1 l2] 'であるが、O(n^2)の性能を有する。リストを比較することは、オーダーではなく共通エレメントのセットのみを気にする場合に特に効果的です。両方のリストを並べ替えることができます。 – 9000
'数字 'とは何ですか?なぜあなたは抱擁を使用していますか? – melpomene