Pythonの内包表記が中途半端ってどういうこと?
Haskellの内包表記も似たようなもんだよ
それに慣れると(Haskellにおいてすら)mapやfilterより読みやすい

[x * 2 | x <- array, x < 3]
map (* 2) $ filter (< 3) $ array