Advertisement
Guest User

Untitled

a guest
Sep 4th, 2015
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.34 KB | None | 0 0
  1. module Sums where
  2.  
  3. import Data.Array ((:), foldM, nub, sort)
  4. import Data.Maybe (Maybe(..))
  5. import Prelude (($), (+), (++), map)
  6.  
  7. -- Given an array of integers, compute the list of all
  8. -- possible totals, using each integer at most once.
  9.  
  10. sums :: Array Int -> Maybe (Array Int)
  11. sums = foldM (\a e -> Just $ sort $ nub $ (e :) $ map (+e) a ++ a) [0]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement