Haskell, liste de nombre naturel

Je suis un débutant absolu en Haskell, tout en essayant de comprendre comment il fonctionne.

Je veux écrire mon propre paresseux liste d'entiers tels que [1,2,3,4,5...].

Pour la liste de celles que j'ai écrit

ones = 1 : ones

et lorsqu'on l'a essayé, fonctionne très bien:

*Main> take 10 ones
[1,1,1,1,1,1,1,1,1,1]

Comment puis-je faire de même pour l'augmentation des entiers ?

J'ai essayé ceci mais en effet, elle échoue:

int  = 1 : head[ int + 1]

Et après comment puis-je faire une méthode qui multiplie deux ruisseaux? tels que:

mulstream s1 s2 = head[s1] * head[s2] : mulstream [tail s1] [tail s2]
  • Vous pourriez être confus au sujet de la différence entre () et [], depuis votre dernier exemple fonctionne (pour l'infini listes) si vous remplacez tous les [] par ().
InformationsquelleAutor Hellnar | 2010-03-21