je dois faire une fonction avec la signature diffFolge :: (Integer, Integer) -> [Integer]
, qui, lorsqu'il est appliqué à la paire d'arguments (m, n)
(m, n> 0
) retourne une liste descendante des numéros, la différence entre le nombre beeing n
. Le premier élément de la liste de résultats est m
, le dernier élément est toujours supérieur à 0
et le dernier élément soit 0
soit une valeur strictement inférieure à 0
.différence sous-produit
Je l'écris comme suit:
diffFolge :: (Integer,Integer) -> [Integer]
diffFolge (m,n) = if m > 0 && n > 0 then [m,m-n..n-2*n] else []
exemple
input : diffFolge (5,1)
output : [5,4,3,2,1,0]
exemple
input : diffFolge (5,2)
output :[5,3,1,-1] ---> This is true by my code
Cependant, avec l'entrée donnée dans le premier exemple ma fonction retourne [5,4,3,2,1,0,-1]
. Comment puis-je corriger cela?
c'était la réponse ce que je cherchais merci ... – marco