我试图在第一行读取n然后输入n行并打印每行中前两个元素的总和,如:
输入:
2
1 2
3 4
输出:
3
7
到目前为止,我的代码如下:
import Control.Monad
fromDigits = foldl addDigit 0
where addDigit num d = 10*num + d
first (x:xs) = fromDigits x
second (x:xs) = fromDigits xs
main = interact processInput
processInput input = unlines [perLine line | line <- lines input]
perLine line = first line + second line
但是我收到以下错误
无法将类型'[Char]'与'Char'匹配
无法将'Char'类型与'[String]'
匹配
我是Haskell的新手,所以我不确定如何解决它。
答案 0 :(得分:2)
一些提示,按顺序:
Char
转换为Int
等。
ord
。x:xs
模式中,xs
是列表的其余部分,而不是下一个元素。
[Char]
与Char
问题的来源。words
功能。show
。一般情况下,我建议启动ghci
并使用它,只是为了对Haskell有一些基本的了解。在另一个窗口中拉出Hoogle或其他一些Haskell引用...