【发布时间】:2018-05-31 22:09:48
【问题描述】:
tripleEven :: [Int] -> [Int]
tripleEven list = case list of
[] -> []
[x:xs]
| (x `mod` 2) == 0 = triple x tripleEven xs
| otherwise = tripleEven xs
where triple = (3*)
我不断收到以下错误:
parse error on input `='
Perhaps you need a 'let' in a 'do' block?
e.g. 'let x = 5' instead of 'x = 5'
|
71 | | (x `mod` 2) == 0 = triple x tripleEven xs
我希望它通过一个列表,如果数字是偶数,那么它是三倍。如果它是奇数,则移动到下一个数字直到最后。我是 Haskell 的新手,只学习语法。如果有人能解释这里到底出了什么问题,我会很高兴。谢谢。
【问题讨论】:
-
你想在输出中保留奇数吗?即
tripleEven [1,2,3,4]应该是[6,12]还是[1,6,3,12]