私はいくつかのHaskellの試験紙の質問を練習していて、int型と 二つのリストを受け取り、指定されたサイズの兄貴にそれらを一緒に編むHaskellの関数weaveHunksを定義し、次のHaskell - 2つのリストをnサイズのまとまりでまとめますか?
に遭遇してきました。 型署名を必ず宣言してください。
例:私はあまりにも一緒に2つのだけのリストを織るれるスタックオーバーフロー、上で次を発見した
weaveHunks 3 "ABCDEFGHIJKLMNO" "ABCDEFGHIJKLMNO"
=> "abcABCdefDEFghiGHIjklJKLmnoMNO"
weaveHunks :: [a] -> [a] -> [a]
weaveHunks xs [] = xs
weaveHunks [] ys = ys
weaveHunks (x:xs) (y:ys) = x : y : weaveHunks xs ys
の塊で、私は、これは、n個のサイズfoのチャンクを取るように調整する問題を抱えています、私はHaskellのが、THIに非常に新しいですsは、私がこれまで持っているもの
weaveHunks :: Int -> [a] -> [a] -> [a]
weaveHunks n xs [] = xs
weaveHunks n [] ys = ys
weaveHunks n xs ys = (take n xs) : (take n ys) : weaveHunks n (drop n xs) (drop n ys)
である私は、最後の行
(タイプ
a' with
[A] 'と一致しませんでした)
上のエラーを取得しています(drop n xs)
ないですリスト?
'weaveHunks'のタイプは、' [a] 'を生成すると言います。タイプシグネチャを除外してghciにロードすると、そのタイプはどのようなものなのでしょうか? – dfeuer
私はタイプシグネチャを削除しました。私はweaveHunks :: p - > [a] - > [a] - > [a] ' –
を与えました。その型情報を取得するには最初の2行を削除する必要があります。とにかく、あなたはあなたの答えを得ました。 – dfeuer