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

Magicloud Magiclouds magicloud.magiclouds at gmail.com
Sat May 18 09:48:36 UTC 2019


Ah, I did not make it clear. Once for each number.

On Sat, May 18, 2019 at 2:11 PM David Kraeutmann <kane at kane.cx> wrote:
>
> This is also an interesting solution:
>
> sums :: [[Integer]]
> sums = do
>   x <- [1..9]
>   go x [x] (10 - x)
>
>   where
>     go x xs r
>       | r > 0
>       = do
>         x <- [1..min x r]
>         go x (x:xs) (r - x)
>
>       | otherwise = return xs
>
>
> On 05/18/2019 02:00 AM, Magicloud Magiclouds wrote:
> > I see. Did not got the filterM part in mind. Thanks.
> >
> > On Sat, May 18, 2019 at 1:48 PM Francesco Ariis <fa-ml at ariis.it> wrote:
> >> Hello,
> >>
> >> On Sat, May 18, 2019 at 12:33:00PM +0800, Magicloud Magiclouds wrote:
> >>> I solved the question. But I could not figure out a FP style solution.
> >>>
> >>> Question:
> >>>
> >>> 1 - 9, nine numbers. Show all the possible combinations that sum up to
> >>> 10. Different orders are counted as the same.
> >> A possible solution takes advantage of powersets with the [] Monad.
> >>
> >>     λ> :m +Control.Monad
> >>     λ> f cs = filterM (\x -> [True, False]) cs
> >>     λ> filter ((==10) . sum) (f [1..10])
> >>
> >> _______________________________________________
> >> Haskell-Cafe mailing list
> >> To (un)subscribe, modify options or view archives go to:
> >> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> >> Only members subscribed via the mailman list are allowed to post.
> > _______________________________________________
> > Haskell-Cafe mailing list
> > To (un)subscribe, modify options or view archives go to:
> > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> > Only members subscribed via the mailman list are allowed to post.
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.


More information about the Haskell-Cafe mailing list