Référence à un object Null ? [ocaml] - Divers - Programmation
Marsh Posté le 10-10-2004 à 18:30:35
héhéhé, y'a pas de null en o'caml, il faut le créer toi-même :
type maybenode = None | Some noeud;;
Marsh Posté le 11-10-2004 à 08:57:25
merci pour ta réponse !
pardon de faire le lourd, mais il y a un problème de syntaxe
Si je mets le code que tu m'as donné, syntaxe error
j'ai essayé type maybenode = None | Some of noeud ;; mais noeud n'est pas encore déclaré
avec
type maybenode = None | Some;; le problème viens avec
val mutable fils = Null
et
frere#isNull
==> j'ai un truc genre
This expression has type maybenode
It has no method isNull
merci pour tes éclairsissements (ortho ?!)
Marsh Posté le 12-10-2004 à 14:17:56
hum, comme je travaille pas avec des objets, je te file un truc générique :
type 't maybe = None | Some of 't
ensuite, il faut adapter à ton type somme :
method getFrere = match frere with
| None -> ...
| Some f -> ...
Marsh Posté le 12-10-2004 à 14:20:01
sinon, pour les types mutuellement récusifs, on utilise and :
type maybeMoncul = None | Some of moncul
and type moncul = ...
enfin, il me semble. la doc du langage est très bien faite, tu peux la consulter si tu as un doute.
Marsh Posté le 14-10-2004 à 20:02:26
Je sais, j'abuse, mais je n'y arrive toujours pas... :
Code :
|
à la compilation, je recoit : This expression has type noeud maybenode
It has no method isNull
J'arrive pas à voir comment lui expliker que noeud maybenode, ben c'est un noeud...
j'ai beau lire des docs, je ne voit toujours pas comment faire ça...
je viends de java, et null me manque beaucoup
Marsh Posté le 14-10-2004 à 20:36:25
il faut que partout où tu utilises un 't maybenode, tu fasses un match machin, c'est ce qu'on appelle un destructeur.
donc partout où tu utilises frere ou fils. c'est ce que fait java à chaque fois qu'il y a machin.bidule, il vérifie que machin n'est pas null.
Marsh Posté le 15-10-2004 à 07:39:02
brisssou a écrit : Je sais, j'abuse, mais je n'y arrive toujours pas... : |
Tu peux p-ê t'inspirer du code pour un arbre binaire :
cs.wellesley.edu/~cs251/ocaml-data.pdf
ou de celui-ci : http://www.lri.fr/~filliatr/ftp/oc [...] et.ml.html
Marsh Posté le 10-10-2004 à 17:10:06
Je ne trouve pas dans les différentes doc comment vérifier qu'un object est réellement instancié. Je voudrais faire un truc du genre :
mais pas moyen, du coup, j'ai cru gruger en faisant
mais évidemment, ça crash dés que je crée une instance de noeud, puisque ça crée des noeud en boucle...
donc, comment déclarer mes variqbles à null ?
merci !
---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris