0

特定のリスト内のすべてのリストのすべてのヘッドの合計を取得する関数が必要です。私はこれで試しています:

verticalParity :: [Int] -> [Int] -> Int
verticalParity (x:xs) (y:ys) = x + y

なぜ私はこれを行うことができないのですか?

map verticalParity [[2,0,2,2,2,1], [5000,0,2,3,2,1], [26,1,2,3,44,4]]
4

1 に答える 1

8

これはあなたが説明したことを行います

sum . map head

あなたが達成しようとしているのはマップではなく、フォールドであるため、投稿した関数は機能しません(合計はその例です)。

verticalParity 関数をこれに変更することもできます

verticalParity :: Int -> [Int] -> Int
verticalParity x (y:ys) = x + y

そしてこれを使う

foldl verticalParity 0 [[2,0,2,2,2,1],[5000,0,2,3,2,1],[26,1,2,3,44,4]]
于 2012-12-05T15:40:23.867 に答える