プログラミングHaskell の練習問題で QuickCheck を使うのに、ちょうどよさそうな問題があったので試してみた。 問題は、map と filter を使って [f x | x <- xs, p x] を書き直せ、というもの。以下、できたコード。 filteredMap :: (a -> b) -> (a -> Bool) -> [a] -> [b] filteredMap f p = map f . filter p 先日 QuickCheck を知ったところなので、早速答え合わせに使ってみようとした。 import Test.QuickCheck filteredMap :: (a -> b) -> (a -> Bool) -> [a] -> [b] filteredMap f p = map f . filter p prop_model0 :: (Int -> Int)