我使用Visual Studio Code作为chice的文本编辑器,并且以下Haskell代码无法编译。显然是由于缩进或缺少括号错误。由于没有括号,我想知道问题出在哪里
safeSqrt :: Either String Doubble -> Either String | Doubble safeSqrt sx = case sx of Left str -> Left str Right x -> if x < 0 then Left "Error" else Right $ sqrt x
GHCi引发以下错误消息:
Main.hs:51:1: error: parse error (possibly incorrect indentation or mismatched brackets) | 51 | safeSqrt sx = | ^
可以帮忙吗
谢谢
汤姆
问题不在于缩进。它带有类型签名。您|
在的签名中使用了竖线字符()Either
。您应该删除它。而且你拼错了。虽然带有double b的 double 很不错,但不幸的是,它不是a的名称Doubble
Double
:
safeSqrt :: Either String Double -> Either String Double safeSqrt sx = case sx of Left str -> Left str Right x -> if x < 0 then Left "Error" else Right $ sqrt x