From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id 64850BC69 for ; Thu, 18 Oct 2007 12:37:35 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ao8CANjTFkeCulhph2dsb2JhbACBWox0AgEICimBJw X-IronPort-AV: E=Sophos;i="4.21,295,1188770400"; d="scan'208";a="3199130" Received: from fiton.bononia.it ([130.186.88.105]) by mail2-smtp-roc.national.inria.fr with ESMTP; 18 Oct 2007 12:37:35 +0200 Received: from aquarium.takhisis.invalid (fiton.bononia.it [130.186.88.105]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "Stefano Zacchiroli", Issuer "sockmel.bononia.it" (verified OK)) by fiton.bononia.it (Postfix) with ESMTP id 7C47D380D1 for ; Thu, 18 Oct 2007 12:37:18 +0200 (CEST) Received: by aquarium.takhisis.invalid (Postfix, from userid 1000) id D1ED11241E6; Thu, 18 Oct 2007 12:37:30 +0200 (CEST) Date: Thu, 18 Oct 2007 12:37:30 +0200 From: Stefano Zacchiroli To: caml-list@yquem.inria.fr Subject: Re: [Caml-list] Smells like duck-typing Message-ID: <20071018103730.GA18486@takhisis.invalid> References: <20071018073742.GB523@takhisis.invalid> <522073.15700.qm@web54605.mail.re2.yahoo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <522073.15700.qm@web54605.mail.re2.yahoo.com> User-Agent: Mutt/1.5.16 (2007-06-11) X-Spam: no; 0.00; zacchiroli:01 zack:01 0100,:01 conceptually:01 derivation:01 ocaml:01 denoting:01 cheers:01 zacchiroli:01 zack:01 unibo:01 0.02:98 wrote:01 typing:01 caml-list:01 On Thu, Oct 18, 2007 at 11:31:34AM +0100, Dario Teixeira wrote: > > class full (id, title, intro, body) = > > object > > inherit blurb (id, title, intro) > > method body: string = body > > end > > While that would indeed involve a little bit of less typing, it's also > conceptually wrong, because a Full story is not a derivation of a Blurb > with an extra field. Well, remember that in ocaml inheritance is not an instance of "is a" relationship among classes, but rather "method inclusion" (if you really want a name for this :)). So you can imagine that blurb (or call it otherwise) is just a set of methods denoting how a blurb-like class should behave, and here you have back the duck-typing mentioned in the subject, and than you "inherit" from it both in the actual blurb class and in the full class. Just my 0.02€, Cheers. -- Stefano Zacchiroli -*- PhD in Computer Science ............... now what? zack@{cs.unibo.it,debian.org,bononia.it} -%- http://www.bononia.it/zack/ (15:56:48) Zack: e la demo dema ? /\ All one has to do is hit the (15:57:15) Bac: no, la demo scema \/ right keys at the right time