我在这里有一个半自愿的Haskell作业,需要一些帮助才能解决它。 任务:
编写Haskell函数
evenmin a b c
如果参数中没有偶数,则返回参数中最小的偶数或最大的不均匀数。
我知道我可以用很多警卫来做到这一点,但我相信有更好的方法!请不要写出解决方案,但如果可以的话,请向我推动正确的方向。谢谢!
答案 0 :(得分:4)
提示:假设您的输入是一个非空的整数列表,而不是3个参数,即
evenmin' :: [Int] -> Int
假设你有一个函数phi
分区输入,如下所示:
phi [1, 2, 3, 4, 5, 6] == ([1,3,5],[2,4,6])
evenmin'
的定义是什么?然后,定义evenmin a b c = evenmin' [a, b, c]
。
答案 1 :(得分:2)
以这种方式排序整数:
<=
>=
定义myCompare :: Int -> Int -> Ordering
。
根据上述顺序实现您想要的最小值。
如何计算两个对象的最小值w.r.t。通用排序?
如何将其扩展为三个对象?
奖金:如何将其扩展到列表?