Difference between revisions of "Code for Bob"
Jump to navigation
Jump to search
(+cat) |
Tomjaguarpaw (talk | contribs) (Deleted old dead page) |
||
Line 1: | Line 1: | ||
− | [[Category:Code]] |
||
− | <haskell> |
||
− | #!/usr/local/bin/runhugs |
||
− | import "/home/ralf/hudak_soe/HUnit-1.0/HUnit" |
||
− | newtype Lover a = Lover {loverDiary :: (Name,a)} |
||
− | deriving Show |
||
− | type Name = String |
||
− | |||
− | createLover :: Name -> a -> (Lover a) |
||
− | createLover name times = Lover (name,times) |
||
− | |||
− | chainAffairs :: Num a => Lover a -> Lover a -> Lover a |
||
− | chainAffairs (Lover (names, oldtimes)) (Lover (newlady, newtimes)) = |
||
− | Lover ((newlady ++ names), (oldtimes + newtimes)) |
||
− | |||
− | startAffairWith :: Num a => Name -> Lover b -> Lover a |
||
− | startAffairWith name (Lover (names,times)) = Lover (name,0) |
||
− | |||
− | jenny = startAffairWith "Jenny " |
||
− | luisa = startAffairWith "Luisa " |
||
− | antonia = startAffairWith "Antonia " |
||
− | |||
− | bob = createLover "Paula " 5 |
||
− | |||
− | oneMoreTime :: Num a => Lover a -> Lover a |
||
− | oneMoreTime (Lover (name, times)) = Lover (name, times+1) |
||
− | |||
− | test1 = TestCase (assertEqual "this test" ("Lover{loverDiary=(\"Paula \",5)}") |
||
− | (show bob)) |
||
− | --test1 = TestCase (assertEqual "this test" () ()) |
||
− | tests = TestList [TestLabel "test1" test1] |
||
− | |||
− | main = do runTestTT tests |
||
− | do |
||
− | let |
||
− | bob' = (oneMoreTime bob) |
||
− | test2 = TestCase (assertEqual |
||
− | "this test" ("Lover{loverDiary=(\"Paula \",6)}") |
||
− | (show bob')) |
||
− | tests2 = TestList [TestLabel "test2" test2] |
||
− | in |
||
− | runTestTT tests2 |
||
− | </haskell> |