Я уже давно хотел изучить Haskell, и я знаю его, и подобные языки действительно хорошо поддерживают различные виды бесконечных списков. Итак, как я могу представить последовательность тетраэдрических чисел в Haskell, желательно с объяснением того, что происходит?
0 0 0
1 1 1
2 3 4
3 6 10
4 10 20
5 15 35
6 21 56
7 28 84
8 36 120
В случае, если это ' неясно, что там происходит, второй столбец - это промежуточная сумма первого столбца, а третий столбец - это промежуточная сумма второго столбца. Я бы предпочел, чтобы в коде Haskell сохранилось что-то от подхода «бегущей суммы», поскольку мне было интересно, как выразить эту концепцию.