嗨我在输入“=”中得到(第7行)Parse错误,这只是对字符串中的单词求和,任何帮助都表示赞赏。感谢。
module Main where
main = do
putStr "Enter a string: "
input <- getContents
value = unwords . sum . words input
putStrLn (value)
答案 0 :(得分:4)
该行:
value = unwords . sum . words input
语法无效。你需要一个let语句。
let value = unwords . sum . words input
这仍然无效,您想要将您的功能(以及三个功能的组合)应用于输入:
let value = (unwords . sum . words) input
或者也许:
let value = unwords . sum . words $ input
这仍然无效,因为输入为String
,而words
的结果是String
([String]
)的列表。因此,您需要将字符串读入某些Num
类型(Integer
s?),然后转换回String
。 unwords
没有用,因为你只有一个单词,总和,留在最后(vs一个单词列表,unwords需要):
let value = show . sum . map read. words $ input
根据类型的不同,您可能需要对read或sum进行注释,以指定它是Int
还是Double
还是其他内容。