如何在Haskell中找到最小的3个整数?

时间:2017-03-10 16:53:39

标签: haskell

作为Haskell的初学者,我试图编写一个代码来查找3个整数中的最小数字。这就是我到目前为止所拥有的。任何人都可以把我推向正确的方向吗?

smallest :: Int -> Int -> Int -> Int
smallest a b c = min a b c

3 个答案:

答案 0 :(得分:9)

min函数接受两个参数,这就是您的代码无法编译的原因。但是,您可以拨打min两次:

smallest :: Int -> Int -> Int -> Int
smallest a b c = min a (min b c)

如果您对两次调用并且想要更简洁的解决方案不满意,可以使用minimum功能。它接受一个列表并返回其最小值:

smallest :: Int -> Int -> Int -> Int
smallest a b c = minimum [a, b, c]

答案 1 :(得分:5)

@ Zheka的代码适用于三个数字,如果你需要更多,它足以让人注意到min a (min b c)看起来就像一个折叠:

smallest a b c = foldl1 min [a, b, c]

答案 2 :(得分:0)

无点样式:

metadata