Specs
GHC 6.12.1
Mac OS X 10.6.4 x64
MacBook Pro
Problem
I’m having trouble using let syntax. The following code refuses to compile:
module Main where
main = let x = 1
y = 2
z = 3
in putStrLn $ "X = " ++ show x ++ "\nY = " ++ show y ++ "\nZ = " ++ show z
I tried tabbing in y = 2 and z = 3 even more. No dice.
(Undesirable) Solutions
The only way I’ve gotten the code to compile is either
- Replacing hard tabs with spaces.
- Replacing the
letclause with awhereclause.
Saizan on #haskell explains that the assignments in a let expression have to align, not let itself. As long as the assignments line up, it’s okay to use hard tabs or soft tabs.
Correct code: