タスク:型アノテーションを使用して関数を作成しようとしていますminimum_recursive :: (a -> a -> Bool) -> [a] -> a
。最初のパラメーターについては、2つのパラメーターを受け取る関数を受け入れ、最初のパラメーターless
が2番目のパラメーターよりも小さい場合はTrueを返し、それ以外の場合はFalseを返します。minimum_recursive
また、2番目のパラメーターとしてリストを受け入れます。明示的な再帰を使用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
です。
注:このタスクを実行するためのより簡単な方法があることはわかっていますが、上記のように実行する必要があります。