[Haskell-cafe] Newbie: generating a truth table
lennart at augustsson.net
Tue Feb 6 04:31:10 EST 2007
It would be better to produce a triple (as was suggested)
loop = [(x, y, x&&y) | x <- [True, False], y <- [True, False]]
The you can map a function that prints over that. Or even better
map a function that generates the strings, and the use one big
putStr at the end. Always try to separate IO from computation.
On Feb 6, 2007, at 10:18 , phiroc at free.fr wrote:
> thanks for you help.
> Here's the code:
> and2 :: Bool -> Bool -> Bool
> and2 a b = a && b
> loop = [ and2 x y | x <- [True,False], y <- [True,False] ]
> Now, how do I have Haskell print
> printStrLn("True and True = ") + <result of calling and2 True True>
> printStrLn("True and False = ") + <result of calling and2 True False>
> Quoting Ketil Malde <Ketil.Malde at bccs.uib.no>:
>> phiroc at free.fr wrote:
>>> I would like to create a Haskell function that generates a truth
>>> table, for
>>> Boolean values, say, using the following "and" function :
>>> and :: Bool -> Bool -> Bool
>>> and a b = a && b
>> What is the type of the resulting table?
>>> I have tried creating a second function called "loop", which
>>> "and", but it did not work, because, for some reason unknown to
>>> me, "do"
>>> not like repeated function calls
>>> loop = do
>>> and True True
>>> and True False
>> I'm not sure I understand what you expected here. The 'do' syntax
>> is for monadic code.
>>> Is there a better way to repeatedly call "and"?
>> If you want your table in list for, I'd suggest using a list
>> Here's how you'd calculate squares of numbers, for instance:
>> squares = [ x^2 | x <- [1..5] ]
>>> Furthermore, is there a way in Haskell to loop through the
>>> Boolean values
>>> and False)
>> Since there are only two values, you can just feed a list
>> with [True,False].
>>> Last but not least, in the "loop" function above, assuming that
>>> there is a
>>> to repeatedly call the "and" function, how could you intersperse
>>> between the "and" calls?
>> I would't - keep the the calculation and the output separate instead.
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
More information about the Haskell-Cafe