言語仕様を見て、これならSICP3章だろうと思ってやってみたら、ほとんどが2行(うち型宣言が1行)で書けてわろた。あとで解説とか書くかもしれないし書かないかもしれない。 module Main where addStream :: Num a => [a] -> [a] -> [a] addStream = zipWith (+) scaleStream :: Num a => a -> [a] -> [a] scaleStream factor = map (*factor) mulStream :: Num a => [a] -> [a] -> [a] mulStream = zipWith (*) integersStartingFrom :: Num a => a -> [a] integersStartingFrom n = n : integersStartingFrom (n