Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Smells like duck-typing
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Dario Teixeira <darioteixeira@y...>
Subject: Re: [Caml-list] Smells like duck-typing

> So all full stories are also blurbs, but blurbs are not full stories.  
> So full stories are a more specific type than blurbs are, because while 
> we can always use a full story as a blurb, we can't use a blurb as a 
> full story.

Nope, nothing like that.  Read carefully what I wrote: I simply said
that any method that works on a blurb should also work on a full story.
I didn't say anything about reversing the IS-A relation (and yes, I know
that OCaml's inheritance has different semantics, but I am talking here
about OOP in general).

In fact, a blurb is a kind of story.  Just one that has been restricted
such that some of story's fields/methods cannot be used on blurb.  Now
the OOP purists will jump and say that this violates inheritance.  Which
is precisely my point and why I don't call it inheritance!

> It's much easier, rather than detecting when things have to be removed, 
> to simply detect when things can be added.  Every "remove members" 
> relationship can be expressed as an "add members" relationship going the 
> other direction.  Start with the simpler (fewer members) type and then 
> create the derived type by adding members to make the more complex (more 
> members) type.  Anything you can do with one direction of deriving types 
> you can do with the other direction of deriving.

That is true for most problems.  However, I just described one particular
class of problem where it is more natural (and correct if you will) to
derive by deconstruction rather than by construction.


Want ideas for reducing your carbon footprint? Visit Yahoo! For Good