【发布时间】:2017-07-20 16:27:10
【问题描述】:
我有一个函数,它获取一个列表并且必须返回它的最小元素。
不幸的是,我一直遇到这个问题:
模式中的解析错误:最小
我做错了什么?
minim :: [Int] -> Int
minim [] = 0
minim [x] = x
minim x:xs = min x (minim xs)
min :: Int -> Int -> Int
min a b
| a > b = b
| a < b = a
【问题讨论】:
-
你在 min 中也缺少一个 case,其中 a 和 b 相等
-
我已添加 | a == b = 0。现在我得到了问题:模棱两可的出现“主要”。我之前保存并重新编译过文件。
-
这个单线怎么样?
foldl (\x y->if x<y then x else y) (maxBound::Int) [2,5,2,3,5]
标签: haskell recursion functional-programming pattern-matching parse-error