[Haskell-cafe] How to dynamic plan in Haskell?

Thorkil Naur naur at post11.tele.dk
Sat May 18 12:25:15 UTC 2019


Hello,

On Sat, May 18, 2019 at 12:33:00PM +0800, Magicloud Magiclouds wrote:
> ...
> 1 - 9, nine numbers. Show all the possible combinations that sum up to
> 10. Different orders are counted as the same.
> 
> For example, [1, 4, 5].

With

  sumIs n [] = if n == 0 then [[]] else []
  sumIs n (x:xs)
    = (if n < x then
        []
      else
        map (x:) $ sumIs (n-x) xs
      )
      ++ sumIs n xs

we can do:

Prelude Main> sumIs 10 [1..9]
[[1,2,3,4],[1,2,7],[1,3,6],[1,4,5],[1,9],[2,3,5],[2,8],[3,7],[4,6]]

> ...

Best
Thorkil


More information about the Haskell-Cafe mailing list