Soit la structure 'toto' composée de 'champ1' et de 'champ2', tous les 2 mutables.
Disons que j'ai une fonction 'print_toto' qui m'affiche joliment une variable de type toto.
Si je fais:
let var1 = {champ1 = some_val; champ2 = other_val} in
let var2 = var1 in var2.champ1 <- new_val;
print_toto var1;
print_toto var2;
On peut voir que var1 et var2 sont identiques, quand j'ai modifié le champ1 de var2, ca a aussi modifié celui de var1.
Je voudrais savoir par quoi remplacer 'let var2 = var1 in' pour éviter cela.
Bien sûr, je pourrais remplacer 'let var2 = var1 in var2.champ1 <- new_val' par 'let var2 = {champ1 = var1.champ1; champ2 = new_val} in', seulement en vrai ma structure toto a genre 15 champs, par très pratique quand il y a juste un champ qui doit être modifié dans la nouvelle variable.
Merci d'avance du coup main ^^
Partager