drop -text
drop n xs returns the suffix of xs after the first n elements, or [] if n > length xs:
> drop 6 "Hello World!" == "World!"
> drop 3 [1,2,3,4,5] == [4,5]
> drop 3 [1,2] == []
> drop 3 [] == []
> drop (-1) [1,2] == [1,2]
> drop 0 [1,2] == [1,2]
It is an instance of the more general Data.List.genericDrop, in which n may be of any integral type.
dropWhile p xs returns the suffix remaining after takeWhile p xs:
> dropWhile (< 3) [1,2,3,4,5,1,2,3] == [3,4,5,1,2,3]
> dropWhile (< 9) [1,2,3] == []
> dropWhile (< 0) [1,2,3] == [1,2,3]
O(1) drop n xs returns the suffix of xs after the first n elements, or [] if n > length xs.
O(log(min(i,n-i))). Elements of a sequence after the first i. If i is negative, drop i s yields the whole sequence. If the sequence contains fewer than i elements, the empty sequence is returned.
O(n\c)/ drop n xs returns the suffix of xs after the first n elements, or [] if n > length xs.
Delete the drive, if it exists.
> dropDrive x == snd (splitDrive x)
Remove last extension, and the "." preceding it.
> dropExtension x == fst (splitExtension x)
Drop all extensions
> not $ hasExtension (dropExtensions x)
Drop the filename.
> dropFileName x == fst (splitFileName x)
A command line tool for resolving dropbox conflicts. Deprecated! Please use confsolve.
Version 0.1.2.1
Remove any trailing path separators
> dropTrailingPathSeparator "file/test/" == "file/test"
> Posix: not (hasTrailingPathSeparator (dropTrailingPathSeparator x)) || isDrive x
> Posix: dropTrailingPathSeparator "/" == "/"
> Windows: dropTrailingPathSeparator "\\" == "\\"
O(i) p xs</tt> returns the suffix remaining after takeWhileL p xs.
The genericDrop function is an overloaded version of drop, which accepts any Integral value as the number of elements to drop.
Rotates backdrops for X11 displays using Imagemagic.
Version 1.2
Traditional buffer-overflow attacks work by filling a data buffer with exploit code and then redirecting execution to that buffer. As a countermeasure, modern operating systems will forbid (by default) the execution of writable memory regions.
Return-oriented programming [1] is an alternative exploitation strategy that works around this restriction. The exploit payload is built by chaining together short code sequences ("gadgets") which are already present in the exploited program, and thus are allowed to be executed.
dewdrop is a Haskell library for finding useful gadgets in 32- and 64-bit x86 ELF binaries. You can describe the desired gadget properties with a Haskell function, and use the Dewdrop module to make a customized gadget-finder program. Or you can import Dewdrop.Analyze and integrate this functionality into a larger program.
[1] Shacham, Hovav. The Geometry of Innocent Flesh on the Bone: Return-into-libc without Function Calls (on the x86). CCS 2007, pages 552-561.
Version 0.1
A variety of drop which omits the checks on n so there is an obligation on the programmer to provide a proof that 0 <= n <= length xs.