From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 31E0ED179 for ; Wed, 27 Jul 2005 15:51:35 +0200 (CEST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j6RDpYgA028756 for ; Wed, 27 Jul 2005 15:51:34 +0200 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 PAA22879 for ; Wed, 27 Jul 2005 15:51:34 +0200 (MET DST) Received: from furbychan.cocan.org (furbychan.cocan.org [80.68.91.176]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j6RDpX0a028751 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Wed, 27 Jul 2005 15:51:34 +0200 Received: from rich by furbychan.cocan.org with local (Exim 3.35 #1 (Debian)) id 1DxmTR-0002Mu-00 for ; Wed, 27 Jul 2005 15:01:29 +0100 Date: Wed, 27 Jul 2005 15:01:29 +0100 To: caml-list@inria.fr Subject: Re: [Caml-list] Some Clarifications Message-ID: <20050727140128.GA8027@furbychan.cocan.org> References: <6C6555DF5D075A4EA6D27706F4EC5975031677D4@EUR-MSG-10.europe.corp.microsoft.com> <200507271158.09619.jon@ffconsultancy.com> <42E77634.6020904@rftp.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <42E77634.6020904@rftp.com> User-Agent: Mutt/1.3.28i From: Richard Jones X-Miltered: at concorde with ID 42E79166.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at concorde with ID 42E79165.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; caml-list:01 ocaml:01 guis:01 minor:01 widget:01 polymorphism:01 higher-order:01 notepad:01 ...:98 wrote:01 exception:01 functions:01 modules:01 widgets:01 widgets:01 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.3 On Wed, Jul 27, 2005 at 04:55:32AM -0700, Robert Roessler wrote: > An object certainly seems a natural and concise way to represent a > "state-holder-with-structured-access" - and I have done just that in a > small OCaml project... but that could be the Smalltalk and C++ in my > background talking. :) Modules actually work better for this. The exception is for GUIs, where inheritance allows you to do a few minor but useful things - in particular having containers and layouts which can contain widgets of any widget type. It's interesting that the one example of OO design in the GoF book (or in my ancient edition of it at least) is GUI widgets. I'm keen to know if there are any other areas where inheritance is actually useful over straightforward polymorphism and higher-order functions.. Rich. -- Richard Jones, CTO Merjis Ltd. Merjis - web marketing and technology - http://merjis.com Team Notepad - intranets and extranets for business - http://team-notepad.com