Loops 分析错误(可能缩进不正确或括号不匹配)
我必须做一个问题,接收一个int n,然后计算输入到IO中的n个整数的和 这是密码Loops 分析错误(可能缩进不正确或括号不匹配),loops,haskell,Loops,Haskell,我必须做一个问题,接收一个int n,然后计算输入到IO中的n个整数的和 这是密码 ej13 :: Integer -> IO () ej13 n = do if n==0 then return 0 else do m <- getLine let eme = read m :: Int return (n+m) ej13::In
ej13 :: Integer -> IO ()
ej13 n = do if n==0
then return 0
else do m <- getLine
let eme = read m :: Int
return (n+m)
ej13::Integer->IO()
如果n==0,则ej13 n=do
然后返回0
否则,您的代码会混合制表符和空格;停止这样做,只需将它们全部更改为制表符。您的代码混合了制表符和空格;停止这样做,只需将它们全部更改为制表符。您的代码混合了制表符和空格;停止这样做,只需将它们全部更改为制表符。您的代码混合了制表符和空格;停止这样做,只需将它们全部更改为制表符。即使修复缩进,也无法编译,因为您试图将字符串m
添加到整数n
。您可能打算改用eme
。您的返回类型应该是IO Integer
,并且您还需要进行递归调用以获取剩余值的总和。即使您修复了缩进,这也不会编译,因为您试图将字符串m
添加到整数n
。您可能打算改用eme
。您的返回类型应该是IO Integer
,并且您还需要进行递归调用以获取剩余值的总和。即使您修复了缩进,这也不会编译,因为您试图将字符串m
添加到整数n
。您可能打算改用eme
。您的返回类型应该是IO Integer
,并且您还需要进行递归调用以获取剩余值的总和。即使您修复了缩进,这也不会编译,因为您试图将字符串m
添加到整数n
。您可能打算改用eme
。您的返回类型应该是IO Integer
,并且您还需要进行递归调用以获取剩余值的总和。或者将它们全部更改为空格。我不想重新开始这个争论,制表符很好,但我建议使用空格,因为GHC将制表符解释为8个空格,当您将制表符设置为2或4个空格时,它可能看起来是正确的,@bheklir:是的,空格最适合这种布局使用;不过,我更喜欢在do
位于另一行时使用它,因此使用注释。具有讽刺意味的是,用于对齐的选项卡并不漂亮,或者将它们全部更改为空格。我不想重新开始这个争论,制表符很好,但我建议使用空格,因为GHC将制表符解释为8个空格,当您将制表符设置为2或4个空格时,它可能看起来是正确的,@bheklir:是的,空格最适合这种布局使用;不过,我更喜欢在do
位于另一行时使用它,因此使用注释。具有讽刺意味的是,用于对齐的选项卡并不漂亮,或者将它们全部更改为空格。我不想重新开始这个争论,制表符很好,但我建议使用空格,因为GHC将制表符解释为8个空格,当您将制表符设置为2或4个空格时,它可能看起来是正确的,@bheklir:是的,空格最适合这种布局使用;不过,我更喜欢在do
位于另一行时使用它,因此使用注释。具有讽刺意味的是,用于对齐的选项卡并不漂亮,或者将它们全部更改为空格。我不想重新开始这个争论,制表符很好,但我建议使用空格,因为GHC将制表符解释为8个空格,当您将制表符设置为2或4个空格时,它可能看起来是正确的,@bheklir:是的,空格最适合这种布局使用;不过,我更喜欢在do
位于另一行时使用它,因此使用注释。具有讽刺意味的是,用于对齐的选项卡并不漂亮