【发布时间】:2011-05-08 23:21:53
【问题描述】:
我不断收到此错误消息,但我不明白为什么:
src\Parsing.hs:21:18: parse error on input `='
它来自这条线:
tokens = map strip $ splitWhen (== delimiter) line
我的代码:
tokenize :: String -> HashMap String String
tokenize line =
let (delimiter, fieldOrder) = delimiterAndFieldOrderFor line
tokens = map strip $ splitWhen (== delimiter) line
in Map.fromList $ zip fieldOrder tokens
delimiterAndFieldOrderFor :: String -> (Char, [String])
delimiterAndFieldOrderFor line
| isInfixOf "," line = (',', ["LastName", "FirstName", "Gender", "FavoriteColor", "BirthDate"])
| isInfixOf "|" line = ('|', ["LastName", "FirstName", "Ignored", "Gender", "FavoriteColor", "BirthDate"])
| otherwise = (' ', ["LastName", "FirstName", "Ignored", "Gender", "BirthDate", "FavoriteColor"])
感谢您的帮助!
【问题讨论】:
-
我开始认为常见问题解答应该说“解析错误?缩进。类型错误?删除您的显式签名。”不是作为个人的刺拳,亚历克斯,但这些问题出现了很多,我认为 SO 没有一个很好的系统来讨论社区问题。
-
是的。我什至试图修复缩进。我花了一段时间才意识到 Leksah 正在改变缩进,保存!所以......双重混乱。
标签: haskell syntax indentation