[Haskell-cafe] How to dynamic plan in Haskell?
kane at kane.cx
Sat May 18 06:12:50 UTC 2019
This is also an interesting solution:
sums :: [[Integer]]
sums = do
x <- [1..9]
go x [x] (10 - x)
go x xs r
| r > 0
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:
>> 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.
>>> 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:
>> 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:
> Only members subscribed via the mailman list are allowed to post.
More information about the Haskell-Cafe