Я должен подытожить элементы списка наподобие этого: , если ваш вход ['a','b','c']
, выход должен быть ["a","ab","abc"]
. Но я понятия не имею, как закодировать это ... может ли кто-нибудь дать мне подсказку? Буду очень признателен вам!Haskell: суммирование элементов списка
1
A
ответ
1
все эти намеки хорошо, но вы, вероятно, бороться с теми, слишком
Я хотел бы предложить вам начать отсюда:
sumList [] = []
sumList [x] = [[x]]
sumList (x:xs) = ... : map (...) (sumList xs)
и попытаться выяснить, что вы должны поставить в оба ...
(hint не то же самое;))
первая строка только для того, чтобы дать правильный результат для пустого списка в качестве ввода - вы можете удалить его (рекурсия не должна ударяться)
Второй будет делать [1] -> [[1]]
Теперь вы должны выяснить, что делать с более - вот дополнительный намек:
sumList [1,2]
{ 3. line - x = 1, xs = [2] }
= ... : map (...) (sumList [2])
{ 2. line }
= ... : map (...) [[2]]
теперь вы хотите
= [[1],[1,2]]
, так что вы можете сделать это с помощью
first ... = [1]
second ... = map (prepend 1) to every list in [[2]]
Смежные вопросы
- 1. Суммарное суммирование рекурсивного списка Haskell
- 2. (Двоичный) Суммирование элементов списка
- 3. Суммирование элементов списка в r
- 4. Удаление элементов списка (Haskell)
- 5. Обновление элементов списка, Haskell
- 6. Суммирование целочисленного дерева (Haskell)
- 7. Сравнение элементов списка в Haskell
- 8. Haskell получение элементов списка IO
- 9. Суммирование элементов в ListBox
- 10. Суммирование полей списка в Java
- 11. Обновление кортежа элементов списка в Haskell
- 12. Haskell - проверка уникальности всех элементов списка
- 13. Разбор элементов из списка списков в Haskell
- 14. Haskell группировка элементов списка по FST
- 15. Суммирование списка указателей
- 16. Суммирование соответствующие пары из двух списков в кортеже - в Haskell
- 17. SML NJ - Полиморфный тип пользовательского списка и суммирование элементов
- 18. Добавление элементов списка списка в haskell (не конкатенация, но добавление)
- 19. Удаление списка элементов из вложенного списка в Haskell
- 20. Суммирование элементов матрицы из файла
- 21. Суммирование отдельных элементов результата запроса
- 22. Суммирование элементов массива объектов d3
- 23. Рекурсивное суммирование элементов двумерного массива?
- 24. Суммирование элементов массива логическая ошибка
- 25. Суммирование первых n нечетных чисел в Haskell
- 26. Суммирование списка с помощью Eval
- 27. Поиск элементов в Haskell
- 28. Генератор списка Haskell
- 29. Подсчет элементов в списке (haskell)
- 30. Заказ списка списков в Haskell
Подсказка? Хорошо: если это [непустые списки] (http://hackage.haskell.org/package/semigroups-0.18.1/docs/Data-List-NonEmpty.html#t:NonEmpty), вы можете просто использовать кнопку [ duplicate] (http://hackage.haskell.org/package/comonad-5/docs/Control-Comonad.html#v:duplicate) метод comonad. (Нет никакого реального последовательного способа определить, какой результат должен быть для пустого списка!) Серьезно, хотя, я сомневаюсь, что это поможет вам сейчас, и я не думаю, что любой другой ответ, который мы могли бы дать, поможет вам в первую очередь чтение некоторых учебных пособий. Я всегда рекомендую [LYAH] (http://learnyouahaskell.com/). – leftaroundabout
Знаете ли вы о совпадении шаблонов? – PyRulez
Немного легче намекнуть на то, чтобы указать вам на ['scanl'] (http://hackage.haskell.org/package/base-4.8.2.0/docs/Prelude.html#v:scanl);) –