Представляют последовательность тетраэдрических чисел в Haskell

Я уже давно хотел изучить 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 сохранилось что-то от подхода «бегущей суммы», поскольку мне было интересно, как выразить эту концепцию.

5
задан jnylen 29 September 2010 в 04:02
поделиться