take n, applied to a list xs, returns the prefix of xs of length n, or xs itself if n > length xs:
> take 5 "Hello World!" == "Hello"
> take 3 [1,2,3,4,5] == [1,2,3]
> take 3 [1,2] == [1,2]
> take 3 [] == []
> take (-1) [1,2] == []
> take 0 [1,2] == []
It is an instance of the more general Data.List.genericTake, in which n may be of any integral type.

O(n) Splits a Text into components of length k. The last element may be shorter than the other chunks, depending on the length of the input. Examples:
> chunksOf 3 "foobarbaz" == ["foo","bar","baz"]
> chunksOf 4 "haskell.org" == ["hask","ell.","org"]