+1, but what's wrong with just
whatever::(a->Bool)->[a]->[a]
Is this some subtle efficiency thing relating to closure creation?
Right now the type of deleteBy is:(a -> a -> Bool) -> a -> [a] -> [a]That is, it takes an equality predicate, a value, and a list, and deletes the first element in the list such that the equality predicate returns true for the given value and the element.This can be generalized to:(a -> b -> Bool) -> a -> [b] -> [b]Example use case:keyValues :: [(a, b)]key :: adeleteBy (\x (y, _) -> x == y) key keyValuesThanksGrant Slatton
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries