J'essaye de résoudre une question euler de projet. Je veux créer la liste des éléments dans une spirale entière.créer une liste récursive infinie dans haskell en utilisant une fonction renvoyant une sous-liste
I ont pour fonction:
next_four_numbers last size = map (\p -> last + p*(size-1)) [1,2,3,4]
- avec des paramètres 1 et 3 il retourne [3,5,7,9]
- avec des paramètres 9 et 5, il retourne [13,17,21 , 25]
- avec les paramètres 25 et 7, il retourne [31,37,43,49] ...
J'ai certainement d'autres moyens pour générer, mais à la fin je veux avoir l'infini séquence:
diagonal_spiral_numbers = [...] 1,3,5,7,9,13,17,21,25,31,37,43,49
Comment pourrais-je finir par créer ce infinte séquence en utilisant ma fonction "next_four_numbers"? Bien sûr, je veux être en mesure de mapper ce efficace (je voudrais être en mesure de le faire, par exemple):
take 20000 (filter is_prime diagonal_spiral_numbers)
Merci,
ps: bien sûr, je suis d'apprentissage haskell et pourrait être plus facile que je ne l'imagine.
Je pense que la question n'est pas si claire. De quelle liste avez-vous besoin, comment devrait-elle contenir? Pourriez-vous poster un lien vers le projet? – peoro
Voici Projet Euler [Problème 58] (http://projecteuler.net/index.php?section=problems&id=58) – interjay
Il y a une faute de frappe, 'n' devrait être' last' dans '(\ p -> n + p * (size-1)) ' – Jonathan