原です。

>原です。

>-- foldl add zero は、 fold1 add でもいいのかな。

ごめんなさい。fold1 じゃなくて foldl1 でした。

それから、zipWith を使うと少しだけ簡単になりますね。

xp zero add mul xs ys =
               map (foldl1 add)
             $ transpose
             $ zipWith (map . mul) xs
	      $ iterate (zero:) ys


--
ML: haskell-jp / quickml.com
使い方: http://QuickML.com/