Bonjour , la question est dans le titre, je n'y arrive pas.
Ca doit être simple ?
Mettez-moi sur la voie svp.
Bonjour , la question est dans le titre, je n'y arrive pas.
Ca doit être simple ?
Mettez-moi sur la voie svp.
Salut,
je débute mon apprentissage de Haskell donc ma solution n'est sans doute pas la meilleure mais elle a l'air de fonctionner :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 vasilpapa :: Int -> [Int] vasilpapa n = concat $ zipWith replicate [1..n] [0..(n+1)]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 *Main> vasilpapa 10 [0,1,1,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,8,8,8,8 ,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9]
Eh bien pour qqn qui débute en Haskell tu te débrouilles bien!!
Je propose une légère amélioration, qui repose sur le fait que, alors que les fonctions sont recalculées à chaque fois qu'elles sont appelées, les structures de données sont automatiquement mémorisées:
Donc pour les 9 premiers chiffres, soit [0..8], vasilpapa 9. Si ensuite on a besoin de vasilpapa 15, vasilpapa 9 a déjà été calculé et mémorisé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 vasilist = [ x | x <- concat $ zipWith replicate [1..] [0..] ] ;; une list comprehension infinie définissant la suite demandée vasilpapa n = take m vasilist where m = n*(n+1) `div` 2 ;; somme de la suite arithmétique 1+2+3+...+n
Attention toutefois aux fuites mémoires si tu utilises cette définition dans un programme censé tourner longtemps. Ta liste en compréhension n'est pas nécessaire ici car : "[ x | x <- truc ]" est toujours équivalent à juste "truc".
--
Jedaï
Merci à tous.
En regardant les réponse je viens de constater que je suis le seul (presque) a poser des question sur le forum Haskelll. A croire que je suis le seul à avoir des problèmes d'apprentissage.?
Je pense que tu as quelques débutants Haskell en France qui ont besoin d'aide (même si OCaml a plus la cote ici puisque c'est un produit franco-français, plus ou moins) mais ils sont soit encadrés dans une université et posent les questions localement, soit suffisamment anglophones pour aller chercher les réponses sur StackOverflow, #haskell sur Freenode ou les boîtes emails haskell-beginners ou haskell-cafe. Ça explique probablement en partie le peu d'activité sur ce forum.
--
Jedaï
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager