0

やあみんなだから私はリストのリストからn個のリストを取得しようとしています。「take」や「drop」の方法と同じように機能する方法がhaskellにあるのではないかと思っていましたが、私の状況では機能するのでしょうか。例えば:

Input = [ [1,2,3,4], [5,6,7,8], [9,1,2,3], [4,5,6,7], [8,9,1,2], [3,4,5,6] ]

このリストのリストから最初の3つの要素を取得して、次のようになりたいと思います。

Output = [ [1,2,3,4], [5,6,7,8], [9,1,2,3]]

また、このリストのリストから最初の3つの要素を削除して、次のようになりたいと思います。

Output = [[4,5,6,7], [8,9,1,2], [3,4,5,6]]

haskellでこのようなことをすることは可能ですか?誰かがこの問題に取り組む方法について正しい方向に私を向けることができますか?前もって感謝します。

4

1 に答える 1

7

takedropまさにそれを行います。要素タイプがリストタイプであっても、すべての要素タイプで同じように機能します。

Prelude> take 3 [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16],[17,18,19,20]]
[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
Prelude> drop 3 [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16],[17,18,19,20]]
[[13,14,15,16],[17,18,19,20]]
于 2012-04-21T23:35:36.993 に答える