Advertisement
ChristophX86

List

Apr 30th, 2014
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. data List a = Empty | Data a (List a) deriving (Show, Read, Eq, Ord)
  2.  
  3. new :: a -> List a
  4. new x = Data x Empty
  5.  
  6. append :: (List a) -> a -> List a
  7. append Empty x = new x
  8. append (Data x l) y = Data x (append l y)
  9.  
  10. insert :: (Ord a) => (List a) -> a -> List a
  11. insert Empty x = new x
  12. insert (Data x l) y
  13.     | x == y = Data x (Data y l)
  14.     | x <  y = Data x (insert l y)
  15.     | x >  y = Data y (Data x l)
  16.  
  17. contains :: (Eq a) => (List a) -> a -> Bool
  18. contains Empty _ = False
  19. contains (Data x l) y
  20.     | x == y    = True
  21.     | otherwise = contains l y
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement