在两个以上的变量上调用两个变量的函数的最佳方法是什么?
例如给定函数max
Prelude> :t max
max :: Ord a => a -> a -> a
如果我想要最大的变量,x,y,z
我可以调用
max (max x y) z
但它对于大量元素来说是冗长的。
一种方法是在列表上递归执行(使用“Learn You a Haskell for Great Good”中的示例
maximum :: Ord x => [x] -> x;
maximum [] = error "maximum of empty list"
maximum (x:[]) = x
maximum (x:xs) = max x (maximum(xs))
因此,使用它我必须创建一个数组,然后创建一个这样的函数来对数组进行操作。有一个更好的方法吗?