J'ai des problèmes avec les listes dans OCaml. J'ai lu des instructions contradictoires indiquant si les listes peuvent être modifiées ou non à l'exécution. L'opérateur cons peut-il être utilisé lors de l'exécution?OCaml typage structurel et listes
En outre, pourquoi un doberman (voir ci-dessous) est-il autorisé à figurer dans une liste de chihuahuas? Comment pourrait-on ajouter un autre chihuahua sur la liste (comme essayé avec la dernière ligne)?
class virtual dog =
object
method virtual bark : unit
end;;
class chihuahua =
object
inherit dog
method bark = Printf.printf "Yip!"
end;;
class doberman =
object
inherit dog
method bark = Printf.printf "Roar!"
end;;
let c1 = new chihuahua;;
let c2 = new chihuahua;;
let c3 = new chihuahua;;
let d1 = new doberman;;
let arrayOfDogs = [c1;c2;d1];;
arrayOfDogs :: c3;;