[Haskell-cafe] Newbie and working with IO Int and Int
Víctor A. Rodríguez
victor at bit-man.com.ar
Tue Oct 17 13:37:18 EDT 2006
> What's wrong with doing it this way?
>
> -- ** UNTESTED CODE **
>
> verifyAdd :: Int -> Int -> Int -> Bool
> verifyAdd a b sum | a + b == sum = True
> otherwise = False
>
> testAddMundane :: Int -> Int -> Bool
> testAddMundane a b = verifyAdd a b (a + b)
>
> -- all the IO-dependent stuff is below this line --
>
> testAddRandom :: IO Bool
> testAddRandom = do a <- randomIO
> b <- randomIO
> return verifyAdd a b (a + b)
>
I discovered something worst yet :-P
Using the next code and calling verifyAdd or testAddMundane it says :
Program error: verifyAdd: ERROR
Instead calling testAddRandom only says :
:: IO Bool
(55 reductions, 92 cells)
---- CODE STARTS HERE, AND IS TESTED -----
import Random
verifyAdd :: Int -> Int -> Int -> Bool
verifyAdd a b sum = error "verifyAdd: ERROR"
testAddMundane :: Int -> Int -> Bool
testAddMundane a b = verifyAdd a b (a + b)
-- all the IO-dependent stuff is below this line --
testAddRandom :: IO Bool
testAddRandom = do a <- randomIO
b <- randomIO
return ( verifyAdd a b (a+b) )
--
Víctor A. Rodríguez (http://www.bit-man.com.ar)
El bit Fantasma (Bit-Man)
Perl Mongers Capital Federal (http://cafe.pm.org/)
GNU/Linux User Group - FCEyN - UBA (http://glugcen.dc.uba.ar/)
More information about the Haskell-Cafe
mailing list