嗨,我在输入“=”中收到一个(第 7 行)解析错误,它只是对字符串中的单词求和,感谢您的帮助。谢谢。
module Main where
main = do
putStr "Enter a string: "
input <- getContents
value = unwords . sum . words input
putStrLn (value)
嗨,我在输入“=”中收到一个(第 7 行)解析错误,它只是对字符串中的单词求和,感谢您的帮助。谢谢。
module Main where
main = do
putStr "Enter a string: "
input <- getContents
value = unwords . sum . words input
putStrLn (value)
该行:
value = unwords . sum . words input
在语法上无效。你需要一个 let 声明。
let value = unwords . sum . words input
这仍然无效,您想将您的功能(嗯,三个功能的组合)应用于输入:
let value = (unwords . sum . words) input
也许:
let value = unwords . sum . words $ input
这仍然无效,因为输入是 aString
而结果是( )words
的列表。因此,您需要将字符串读入某种类型(s?),然后转换回. 没用,因为最后只剩下一个词,即总和(与 unwords 需要的词列表相比):String
[String]
Num
Integer
String
unwords
let value = show . sum . map read. words $ input
根据类型,您可能希望对读取或总和进行注释以指定它是 anInt
还是 aDouble
或其他内容。