From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id RAA30712; Tue, 6 Apr 2004 17:15:04 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id RAA30689 for ; Tue, 6 Apr 2004 17:15:03 +0200 (MET DST) Received: from smtp3.adl2.internode.on.net (smtp3.adl2.internode.on.net [203.16.214.203]) by concorde.inria.fr (8.12.10/8.12.10) with ESMTP id i36FEwYM014956 for ; Tue, 6 Apr 2004 17:15:01 +0200 Received: from [192.168.1.200] (ppp116-94.lns1.syd2.internode.on.net [150.101.116.94]) by smtp3.adl2.internode.on.net (8.12.9/8.12.9) with ESMTP id i36FEsJU035962; Wed, 7 Apr 2004 00:44:56 +0930 (CST) Subject: Re: [Caml-list] Function forward declaration? From: skaller Reply-To: skaller@users.sourceforge.net To: Correnson =?ISO-8859-1?Q?Lo=EFc?= Cc: Timo.Tapiola@tietoenator.com, Ocaml In-Reply-To: <00cf01c41bd6$391b53a0$0203a8c0@hoedic> References: <60532B15DF92FD4693AA89B2F7E01D8F013F29EC@tmex02> <00cf01c41bd6$391b53a0$0203a8c0@hoedic> Content-Type: text/plain; charset=UTF-8 Message-Id: <1081264493.19232.60.camel@pelican> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-4) Date: 07 Apr 2004 01:14:54 +1000 Content-Transfer-Encoding: 8bit X-Miltered: at concorde by Joe's j-chkmail ("http://j-chkmail.ensmp.fr")! X-Loop: caml-list@inria.fr X-Spam: no; 0.00; caml-list:01 sourceforge:01 2004:99 coercing:01 9660:01 glebe:01 nsw:01 checking:01 snail:02 checkout:02 overhead:03 2037:03 classes:03 classes:03 wrote:03 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk X-Status: X-Keywords: X-UID: 75 On Tue, 2004-04-06 at 22:53, Correnson Loïc wrote: > better: you may pack several callback-functions into a record. You can also use classes. Classes cost a small overhead, but checking is much heavier: when you fill the slots of an abstract class type with functions, you do so by coercing an object to a class type, which checks the functions have the correct names, as well as the right types. In addition, the functions are declared together, so the collection of functions is again more likely to be the right collection than merely filling slots in a record or tuple... ... quite apart from the functions being able to share state in a well organised way. -- John Skaller, mailto:skaller@users.sf.net voice: 061-2-9660-0850, snail: PO BOX 401 Glebe NSW 2037 Australia Checkout the Felix programming language http://felix.sf.net ------------------- 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