
Hi all, consider this simple reimplementation of 'elem' function: member :: Eq a => a -> [a] -> Bool member _ [] = False member y (x:xs) | x == y = True | otherwise = member y xs If Haskell allowed to write pattern matching similar to Prolog then we could write this function like this: member :: Eq a => a -> [a] -> Bool member _ [] = False member x (x:_) = True member x (_:xs) = member x xs The meaning of pattern in the second equation is "match this equation if the first argument equals to head of the list". Many times I have found myself instinctively writing patterns in this way, only to get a compilation error. I was thinking about implementing language extension for GHC that would allow to write Prolog-style patterns. Would there be an interest in such an extension? Also, if I missed something obvious please let me know. Janek