Haskell :folding an Array

import Data.Array
lazy folding
foldlA f zero a = go f zero (indices a)
where go f zero (x:xs) = go f (f zero (a ! x)) xs
go _ zero [] = zero

in-place evaluation using seq
foldlA’ f zero a = go f zero (indices a)
where go f zero (x:xs) = zero `seq` go f (f zero (a ! x)) xs
go _ zero [] = zero `seq` zero

Advertisements
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s