Números poligonales y sus propiedades en Haskell

Un número poligonal es aquel que puede ser representado como puntos dispuestos en forma de polígono regular, empezando por el 1. Los primeros números poligonales son los números triangulares, estos se forman a partir de triángulos.
triangulares
Los siguientes son los números cuadrangulares
cuadrados
Los siguientes son los números pentagonales
pentagonales

Los números triangulares son 1, 3, 6, 10, 15, 21, … Sus diferencias son 2, 3, 4, 5, 6, … Por tanto, se obtienen como sigue

1 = 1
3 = 1+2
6 = 1+2+3
10 = 1+2+3+4
15 = 1+2+3+4+5
21 = 1+2+3+4+5+6

Los números cuadrangulares son 1, 4, 9, 16, 25, 36, 49, … Sus diferencias son 3, 5, 7, 9, … Por tanto, se obtienen como sigue

1 = 1
4 = 1+3
9 = 1+3+5
16 = 1+3+5+7
25 = 1+3+5+7+9
36 = 1+3+5+7+9+11
49 = 1+3+5+7+9+11+13

Los números pentagonales son 1, 5, 12, 22, 35, … Sus diferencias son 4, 7, 10, 13, … Por tanto, se obtienen como sigue

1 = 1
5 = 1+4
12 = 1+4+7
22 = 1+4+7+10
35 = 1+4+7+10+13

Siguiendo el mismo patrón, las diferencias entre los números hexagonales son 5, 9, 13, 17, … Por tanto, los primeros números hexagonales son

1 = 1
6 = 1+5
15 = 1+5+9
28 = 1+5+9+13
45 = 1+5+9+13+17

Continuando con este patrón se obtienen los número poligonales con k lados. Los siguientes son

k=7 Heptagonal: 1, 7, 18, 34, 55, 81, 112, 148, 189, 235, …
k=8 Octagonal: 1, 8, 21, 40, 65, 96, 133, 176, 225, 280, …
k=9 Nonagonal: 1, 9, 24, 46, 75, 111, 154, 204, 261, 325, …

En la siguiente relación de ejercicios (elaborada para I1M) se muestran distintas definiciones de los números poligonales y algunas de sus propiedades, como el teorema de Fermat, en Haskell.

Fuente

Destino
La anterior relación de ejercicios la ha elaborado para