Namaran

Code daily. Without assist.

2026-08-24

MyMax.hs

myMax :: Ord a => [a] -> a
myMax = undefined  -- write this

組み込みのmaximumを使わずにmyMaxを実装してください。リストは空でないものとします。

Reference
myMax :: Ord a => [a] -> a
myMax [x]    = x
myMax (x:xs) = max x (myMax xs)

要素が1つだけのリストの最大値はその要素自身です。それ以外の場合は、先頭要素と残りの部分の最大値を比較します。これはリストが空でないことを前提としています — myMax []はパターンマッチ失敗になります。これは組み込みのmaximumと同じ挙動です。