我想要一个函数,该函数需要一个数字列表,并计算每个内部列表的最大值以返回一个数字列表。这是我的实现:
f :: [[Int]]->[Int]
f x:xs = (maximum x) : f xs
这会导致解析错误:
h.hs:8:1: error: Parse error in pattern: f
|
8 | f x:xs = (maximum x) : f xs
我的代码有什么问题?实现这种功能的正确方法是什么?
答案 0 :(得分:5)
在Haskell中,只有当方括号括起来时,才可以将构造函数运算符用作模式:
f :: [[Int]] -> [Int]
f (x:xs) = (maximum as) : f xs