0

リストを受け取って新しいリストを返す関数を書く必要があります。リストの末尾に小さい要素がある場合は、要素を削除して新しいリストを作成します。例: minimum [3, 2, 5, 2, 5]返す必要があります[2,2,5]

minimum (x : xs)
   | null xs
      = []
   | otherwise
      = let
         minelem (x : xs) n
            =
               if x < head(xs)
                  then drop n (x : xs) --how to go to the end of the list here? 
                  else --and here?
      in minimum (x : xs) 1

minimum _
   = []   

宿題の一部です。この機能を完了するのを手伝ってください。

4

1 に答える 1

5

いくつかの詳細を残しましたので、ご記入ください。

minimum' []       = []                     -- base case
minimum' (x : xs) = case minimum' xs of    -- recursive case
    []       -> ...
    (y : ys) -> ...                        -- clue: none of the ys are smaller than y
于 2012-05-22T20:23:19.277 に答える