- ベストアンサー
内包表記に変えるには
以下のHaskellのプログラムを内包表記に変えたいのですが どうしてもうまくいかないのですがどのように記述すればいいでしょうか? remove :: Eq a => a -> [a] -> [a] remove x [] = [] remove x (y:ys) | x == y = remove x ys | otherwise = y: remove x ys
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
remove :: Eq a => a -> [a] -> [a] remove x xs = [e | e <- xs, e /= x] かなあ。あとはNo.1のかたの回答を読んで学んでください。
その他の回答 (1)
- sakusaker7
- ベストアンサー率62% (800/1280)
リストの中から x に等しいものを除いたリストを作るということですね? 内包表記のところだけ。 ___ ___ _ / _ \ /\ /\/ __(_) / /_\// /_/ / / | | GHC Interactive, version 6.4.1, for Haskell 98. / /_\\/ __ / /___| | http://www.haskell.org/ghc/ \____/\/ /_/\____/|_| Type :? for help. Loading package base-1.0 ... linking ... done. Prelude> [1..10] [1,2,3,4,5,6,7,8,9,10] Prelude> [ x | x <- [1..10]] [1,2,3,4,5,6,7,8,9,10] Prelude> [ x | x <- [1..10], x > 5] [6,7,8,9,10] Prelude> [ x | x <- [1..10], x /= 5] [1,2,3,4,6,7,8,9,10] Prelude> [ x | x <- [1..10], x > 100] [] Prelude> あとは自分でがんばってください。