Je travaille sur une fonction simple qui devrait, donné x
, retourner un tuple (y, z)
tel que y <= abs(5) + z * 10 = x
, où z
la plus petite valeur possible. En C, je bouclerais z++
et y++
, jusqu'à ce que leur somme corresponde à x
.Incrément fonctionnel
Actuellement, j'essaie de résoudre ce problème fonctionnellement. S'il vous plaît considérer l'exemple suivant:
let foo x =
let rec aux (y, z, q) =
match (y + z * 10) with
q -> (y, z)
|_ -> aux(y + 1, z + 1, q) //How to correctly set the increments?
aux(0, 0, x)
Cette approche renvoie toujours (0, 0)
, peu importe quoi. Je me suis référé à this question, tout en pensant à une solution. Je suis conscient que les variables mutables devraient être évitées, et c'est ce que je fais. Malheureusement, je crains d'avoir manqué le point, quelque part, donc j'aborde le problème du mauvais côté.
J'ai compris, merci. – Worice