リストから要素を削除する

Haskell での話。リストから特定の要素を削除したくて、ググってみたけどそれらしい関数が見当たらない。需要がないはずがないと思いながらしばし考えて、filter を使えばいいということに思い当たった。
というわけでメモ。

Prelude> let delete x xs = filter (/= x) xs
Prelude> delete 3 [1..9]
[1,2,4,5,6,7,8,9]

[追記]

Data.List モジュールに delete という関数があった。探し方が悪いな。
でも、この関数は上のと違って、最初にマッチした要素しか削除してくれない。

Prelude> import Data.List
Prelude Data.List> delete 3 [1,3,2,3]
[1,2,3]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください