Namaran

Code daily. Without assist.

2026-08-22

MyElem.hs

myElem :: Eq a => a -> [a] -> Bool
myElem = undefined  -- write this

組み込みのelemを使わずにmyElemを実装してください。xxsの中に存在すればTrueを返します。

Reference
myElem :: Eq a => a -> [a] -> Bool
myElem _ []     = False
myElem x (y:ys) = x == y || myElem x ys

空リストには何も含まれないのでFalse。それ以外の場合は、先頭要素と一致するか、または残りの部分に含まれるかを調べます。||は短絡評価なので、一致が見つかった時点でそれ以上リストを辿りません。これは参考実装であり、唯一の正解ではありません — 自分の実装と比較してみてください。