mca*_*dre 7 syntax haskell indentation ghc ghci
眼镜
GHC 6.12.1
Mac OS X 10.6.4 x64
MacBook Pro
问题
我在使用let语法时遇到了麻烦.以下代码拒绝编译:
module Main where
main = let x = 1
y = 2
z = 3
in putStrLn $ "X = " ++ show x ++ "\nY = " ++ show y ++ "\nZ = " ++ show z
Run Code Online (Sandbox Code Playgroud)
我尝试了进入y = 2,z = 3甚至更多.没有骰子.
(不受欢迎的)解决方案
我获得编译代码的唯一方法是
let子句替换该where子句.mca*_*dre 16
#haskell上的Saizan解释说let表达式中的赋值必须对齐,而不是让它自己.只要分配排队,就可以使用硬标签或软标签.
正确的代码:
module Main where
main = let
x = 1
y = 2
z = 3
in putStrLn $ "X = " ++ show x ++ "\nY = " ++ show y ++ "\nZ = " ++ show z
Run Code Online (Sandbox Code Playgroud)
Nei*_*ett 11
您无法使用选项卡正确控制缩进,因为选项卡的大小未定义.
因此,不要在Haskell中使用制表符.他们是邪恶的.