
Am Donnerstag 25 Juni 2009 22:12:08 schrieb Bernhard Lehnert:
Hi,
I'm sorry because I am absolutely sure, this is bloody obvious to the knowing. Being a total beginner I'm stuck. In the main = do part I wrote:
1: if a == True then putStrLn "Yes!" else putStrLn "No." 2: if a == True then let b = "+" else let b = "-"
Line #1 works perfectly well. Read line #2 as pseudocode and you'll see what I want to do. Read it in ghci and it produces " parse error on input `=' "
I tried 'case of' but it doesn't work either.
What am I doing wrong? Thank you for any help,
Bernhard
let b = "+" is not a complete expression, thus cannot be a branch of 'if'. It should give a parse error on 'else' (and my ghci does). But (putStrLn "Yes!") is a complete expression, so can be used as a branch of an if- expression. You probably want to bind the name b to a value depending on a somewhere in main's do- block? That would be achieved so: let b = if a then "+" else "-" b can then be used in following statements. Outside of a do-block, you would have to write let b = if a then "+" else "-" in someExpression HTH, Daniel