Определить функцию списка целых чисел так, чтобы их сумма была n - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь решить следующую проблему с Haskell:

Задача

Определить функцию sumToLists :: Int -> [[Int]], которая, учитывая натуральное число n, этовозвращает все списки положительных чисел, так что их сумма равна n.

Я довольно растерялся в этой проблеме, возможно, использование рекурсии может привести к решению, но я понятия не имею, как это атаковать.Любые предложения будут с благодарностью

1 Ответ

0 голосов
/ 30 января 2019
sumToLists 0 = [[]]
sumToLists n = [ i: xs | i <- [1..n], xs <- sumToLists (n - i) ] 

вам нужен особый случай для 0, потому что по умолчанию будет возвращено [], а не [[]].

...