# Haskell Quiz/Maximum Sub-Array/Solution Kristof

### From HaskellWiki

< Haskell Quiz | Maximum Sub-Array(Difference between revisions)

m |

## Latest revision as of 19:50, 11 August 2007

This solution uses a left fold to find the maximum sum. It keeps track of the maximum sublist found so far (the listmax

sum

r

rsum

max_sublist l = reverse $ fst $ foldl find_max ([],(0,[],0)) l where find_max (max, (sum, r, rsum)) x = (max', (sum', r', rsum')) where (r', rsum') = if (rsum > 0) then (x:r, rsum+x) else ([x], x) (max', sum') = if (rsum' > sum) then (r', rsum') else (max, sum)