Bonjour à tous,
Supposons que j'ai les 2 classes suivantes:
ET
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 class client (n : string) (d :int) = object val nom = n val demande = d method get_nom = nom method get_demande = demande end
J'aimerais ajouter une méthode à la classe itinéraire qui calculerait la demande totale des clients d'un itinéraire. La signature de cette méthode doit correspondre à "method calculer_demandeTotale : int"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class itineraire = let num = ref 1 in fun (c : int) -> object(this) val numero = !num val capacite = c val mutable demande_totale = 0 val mutable liste_clients : client list = [] method get_numero = numero method get_demande_totale = demande_totale method get_liste_clients = liste_clients method set_demande_totale (d : int) = demande_totale <- d method set_liste_clients (l : client list) = liste_clients <- l end
Voici ce que j'ai pour le moment:
Malheureusement, cela produit l'erreur suivante dans Ocaml:
Code : Sélectionner tout - Visualiser dans une fenêtre à part method calculer_demandeTotale = this#set_demande_totale (fold_right (+) (map (fun x -> x#get_demande) liste_clients) 0)
Je ne la comprends pasError: This expression has type client list but is here used with type
< get_demande : 'a; .. > array
Quelqu'un pourrait m'éclairer sur la bonne façon de faire ce que je veux??
Merci à l'avance
Partager