
On Sun, Oct 17, 2004 at 10:53:37PM +0100, Sam Mason wrote:
Peter Simons wrote:
This version should do it:
isSubSeq :: (Eq a) => [a] -> [a] -> Bool isSubSeq [] _ = True isSubSeq _ [] = False isSubSeq (x:xs) (y:ys) | x == y = isSubSeq xs ys ^^^^^^^^
I think you want to refer to List.isPrefixOf here - your version is a sort of "ordered subset" test. I.e. I get:
"abc" `isSubSeq` ".a.b.c." ===> True
as Ketil pointed out, this "subsequence" test may be exactly what the OP meant.
My version would've been:
isSubSeq x = any (isPrefixOf x) . tails
But Remi beat me to it (and for that I'll never forgive him! :-).
Sam
But I only gave the point-free and the point-wise version: You did the half-of-a-point version ;) (which I would actually have used myself too) *ducks and runs*[1] Groetjes, Remi [1] and falls asleep -- Nobody can be exactly like me. Even I have trouble doing it.