Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 6th, 2012  |  syntax: Haskell  |  size: 0.74 KB  |  hits: 18  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. data MyString = MyString String
  2.  
  3. fromString :: String -> MyString
  4. fromString s = MyString s
  5. toString :: MyString -> String
  6. toString (MyString ms) = ms
  7.  
  8. instance Eq MyString where
  9. (MyString a) == (MyString b) = if a == b
  10.                                 then True
  11.                                  else False
  12.  
  13. instance Ord MyString where
  14. compare (MyString a) (MyString b) | a == b = EQ
  15.                                   | (length a) > (length b) = GT
  16.                                   | (length a) < (length b) = LT
  17.                                   | (length a) == (length b) = compare' a b  
  18.  
  19. compare' [] [] = EQ
  20. compare' (a:as) (b:bs) | a > b = GT
  21.                        | a < b = LT
  22.                        | a == b compare' as bs