2026-08-22
MyElem.hs
myElem :: Eq a => a -> [a] -> Bool
myElem = undefined -- write this
組み込みのelemを使わずにmyElemを実装してください。xがxsの中に存在すればTrueを返します。
Reference
myElem :: Eq a => a -> [a] -> Bool
myElem _ [] = False
myElem x (y:ys) = x == y || myElem x ys
空リストには何も含まれないのでFalse。それ以外の場合は、先頭要素と一致するか、または残りの部分に含まれるかを調べます。||は短絡評価なので、一致が見つかった時点でそれ以上リストを辿りません。これは参考実装であり、唯一の正解ではありません — 自分の実装と比較してみてください。