1
ハスケルにxsのリストをバンドルしてサイズnのリストに束縛する関数を書こうとしています。 bundle 3 [1..10]
の結果は[[1,2,3],[4,5,6],[7,8,9],[10]]
である必要があります。ハスケルで値をセット長リストに束ねるには?
私はタイプが
bundle :: Int -> [a] -> [[a]]
ことと
concat $ bundle n xs == xs
length xss > 1 ==> all (\xs -> n == length xs) (init xss)
のようなものを満足する必要があるが、私は実際にそれを実装しようとしてきたときに、私は動けなくなるはずです知っています。私はfoldlを使用する必要があると思うが、どの機能を適用するかは考えられない。
その後、 'foldl'(該当する場合で、すべて)を使用し、まずあなた自身の再帰で試してみてください:パッケージ
split
は正確に同じことをフィッティング関数chunksOf
を提供します。 – Bergi'unfoldr'と' splitAt'を使うことができます。 – Lee
http://hackage.haskell.org/package/split-0.2.3.1/docs/Data-List-Split.html#v:chunksOf – melpomene