take -base -cgi
O(1) take n, applied to a ByteString xs, returns the prefix of xs of length n, or xs itself if n > length xs.
O(log(min(i,n-i))). The first i elements of a sequence. If i is negative, take i s yields the empty sequence. If the sequence contains fewer than i elements, the whole sequence is returned.
O(n) take n, applied to a Text, returns the prefix of the Text of length n, or the Text itself if n is greater than the length of the Text. Subject to fusion.
O(n\c)/ take n, applied to a ByteString xs, returns the prefix of xs of length n, or xs itself if n > length xs.
O(n) take n, applied to a Text, returns the prefix of the Text of length n, or the Text itself if n is greater than the length of the Text. Subject to fusion.
Get the base name, without an extension or path.
> takeBaseName "file/test.txt" == "test"
> takeBaseName "dave.ext" == "dave"
> takeBaseName "" == ""
> takeBaseName "test" == "test"
> takeBaseName (addTrailingPathSeparator x) == ""
> takeBaseName "file/file.tar.gz" == "file.tar"
Get the directory name, move up one level.
> takeDirectory x `isPrefixOf` x || takeDirectory x == "."
> takeDirectory "foo" == "."
> takeDirectory "/foo/bar/baz" == "/foo/bar"
> takeDirectory "/foo/bar/baz/" == "/foo/bar/baz"
> takeDirectory "foo/bar/baz" == "foo/bar"
> Windows: takeDirectory "foo\\bar" == "foo"
> Windows: takeDirectory "foo\\bar\\\\" == "foo\\bar"
> Windows: takeDirectory "C:\\" == "C:\\"
Get the drive from a filepath.
> takeDrive x == fst (splitDrive x)
Get the extension of a file, returns "" for no extension, .ext otherwise.
> takeExtension x == snd (splitExtension x)
> Valid x => takeExtension (addExtension x "ext") == ".ext"
> Valid x => takeExtension (replaceExtension x "ext") == ".ext"
Get all extensions
> takeExtensions "file.tar.gz" == ".tar.gz"
Get the file name.
> takeFileName "test/" == ""
> takeFileName x `isSuffixOf` x
> takeFileName x == snd (splitFileName x)
> Valid x => takeFileName (replaceFileName x "fred") == "fred"
> Valid x => takeFileName (x </> "fred") == "fred"
> Valid x => isRelative (takeFileName x)
takeWhile, applied to a predicate p and a ByteString xs, returns the longest prefix (possibly empty) of xs of elements that satisfy p.
O(n) takeWhile, applied to a predicate p and a Text, returns the longest prefix (possibly empty) of elements that satisfy p. Subject to fusion.
takeWhile, applied to a predicate p and a ByteString xs, returns the longest prefix (possibly empty) of xs of elements that satisfy p.
O(i) applied to a predicate p and a sequence xs, returns the longest prefix (possibly empty) of xs of elements that satisfy p.
O(i) applied to a predicate p and a sequence xs, returns the longest suffix (possibly empty) of xs of elements that satisfy p.
takeWhileR p xs is equivalent to reverse (takeWhileL p (reverse xs)).
O(1) Return the prefix of the Text of n Word16 units in length.
If n would cause the Text to end inside a surrogate pair, the end of the prefix will be advanced by one additional Word16 unit to maintain its validity.
A variety of take which omits the checks on n so there is an obligation on the programmer to provide a proof that 0 <= n <= length xs.