Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] object single linked list - newbie
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Alessandro Baretta <alex@b...>
Subject: Re: [Caml-list] object single linked list - newbie


Ford Lissett wrote:
> I'm missing something really obvious here, please
> explain -
>  
> line 13, characters 17-22:
> This expression has type node node_type
> It has no method get_link
> 
> 
> type 't node_type = Class of 't | Nil;;
> 

Type node node_type is not an object type, hence it cannot 
have methods. Type node is an object type and has method 
get_link. You must match against the Class constructor to 
get the object on which you want to invoke get_link.

>          peek := !next#get_link; (* line 13 *)

class node link_ =
object (self)
    val mutable link: node node_type = link_

    method add node_ =
       let next = ref link in
       let peek = ref link in
       while (!peek != Nil) do
          next := !peek;
          peek := match !next with
	   | Class(obj) -> obj#get_link
	   | Nil -> raise Not_found; (* line 13 *)
          done;
       link <- node_

    method get_link = link
end;;

Alex

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners