8 ビット数値を使用するときに基本的な操作をシミュレートするのに役立つ関数を定義しようとしていました。
これを理解するのに苦労しています..何もインポートせずにできるだけシンプルにしようとしているので、8 つの要素 (0 と 1) の 2 つのリストから始めました。
私が間違っていなければ、次のようになります。
bitsum :: [Int] -> [Int] -> [Int]
bitsum [][] = []
この最後の行の後、リストの要素を 1 対 1 で追加することができないため、ややこしくなり始めます。
bitsum (x:xs)(y:ys)
それが私が今持っているすべてで、正しいと思います。
私の考えは、次のようなことを試すことでした:
bitsum :: [Int] -> [Int] -> [Int]
bitsum [][] = []
bitsum (x:xs)[] = (x:xs)
bitsum [](y:ys) = (y:ys)
bitsum (x:xs)(y:ys) | (x:xs) == (y:ys) && < 0 = (x:xs)
| (x:xs) == (y:ys) && > 0 =
しかし、私はどこかで間違った方向に進んでいると思います。
誰かがこの問題を手伝ってくれたら本当にありがたいです。