>>391
質問に答えるだけの知識を持ち合わせていないので一応コードだけ

intersect :: Eq a => [a] -> [a] -> [a]
intersect xs = filter (`elem` xs)

リスト内包表現でも書けるけど関数型っぽいのはこういう書き方なのかも