我有一个名为bounds1Accum的函数。这个功能很棒
bounds1Accum :: [Integer] -> Integer -> Integer -> (Integer, Integer)
bounds1Accum l min max = (minimum (min:l), maximum (max:l))
我遇到的问题是我需要另一个名为bounds1的函数,它只接受一个列表并返回一个最小最大对。该函数应该包围bounds1accum并检查首先查看传递给它的列表是否为空。如果列表为空,它将返回Nothing,否则它将返回调用bounds1Accum函数的结果。
我需要两个案例,而且我的签名是
bounds1 :: [l] -> Maybe(min,max)
bounds1 [] = Nothing (which I am unsure if this will be correct)
然后第二个案例是我难倒的地方 我最初有
bounds1 l min max = if null l then Nothing else Just $ bounds1 bounds1Accum min max
但这甚至没有编译,所以如果有人可以提供建议或其他方式,我可以看看这个问题,这将是伟大的。这是一个作业所以我不想要答案,但更多的是指导或帮助解决问题。 谢谢
答案 0 :(得分:1)
在第二种情况下,您没有min
和max
作为参数。您必须从列表中获取这些值。
if
是不必要的,因为你已经在第一种情况下处理了空列表。
为什么在使用bounds1
之前有bounds1Accum
?