任务:我正在尝试编写一个类型为 signature 的函数minimum_recursive :: (a -> a -> Bool) -> [a] -> a
。对于它的第一个参数,它接受我将调用的带有less
两个参数的函数,如果第一个参数小于第二个参数,则返回 True,否则返回 False。minimum_recursive
也接受一个列表作为它的第二个参数。使用显式递归,minimum_recursive
应该确定其输入列表 [a] 中的最小值。
我的想法:我想把实际的递归放在一个也接受累加器的辅助函数中。我会用第一项作为累加器来调用辅助函数。
到目前为止我有什么:到目前为止,我有以下内容:
-- function as first parameter to min'
-- accepts two params, returns True if
-- first must come before second in sorted
-- order
less :: Ord a => a -> a -> Bool
less a b = a < b
-- Subpart B
minimum_recursive :: (a -> a -> Bool) -> [a] -> a
minimum_recursive func list = minimum_recursive_h func list []
我什至不知道如何开始写作minimum_recursive_h
。
注意:我知道可能有一种更简单的方法可以完成这项任务,但我需要按照上面的说明进行操作。