原です。

>  豊福です。

>xp zero add mul xs ys =
>               map (foldl add zero) -- 足し算
>             $ foldr transpose [] -- 桁揃え
>             $ map (\ (a,bs) -> map (mul a) bs) -- 掛け算
>             $ zip xs -- xs と組み合わせる
>             $ iterate (zero:) ys -- 桁ずらし
>
>掛け算の筆算みたいでしょ。

確かに。再帰を陽に使わない男らしいコードですね。:-)

-- $ foldr transpose [] は、$ transpose の書き間違い?
-- foldl add zero は、 fold1 add でもいいのかな。


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