ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> xml-dev
xml-dev
Re: [xml-dev] An approach to describing the relationships between units-of-measure
by John Cowan other posts by this author
Jul 21 2003 12:20PM messages near this date
Re: [xml-dev] An approach to describing the relationships between units-of-measure | Re: [xml-dev] An approach to describing the relationships between units-of-measure
Emmanuil Batsis (Manos) scripsit:

>  Thus, the signature to kilometer indicates a function signature where 
>  two parameters are passed, one for the number to convert and one for the 
>  type to convert from:
>  
>  function kilometer(someNumber, someType)
>  {
>     if(someType.equals("meters"))
>        return fromMetersToKilometers(someNumber);
>     // rest of elseif statements mapped to expected
>     // input types here
>  }
>  
>  which is bad, as the kilometer function can only accept a finite number 
>  of input types at first glance.

This is a classic case for the double-dispatching pattern that is used
in Smalltalk for mixed-mode arithmetic.    Google for "double dispatch"
for details.  But in fact there is a nonarbitrary choice, namely meters,
the SI unit of distance, for the pivot.  The Kilometer object can ask
the Distance object to convert itself to meters, and then all it has
to know is one fact:  1 km = 1000 m.

-- 
John Cowan                              <jcowan@[...].com> 
http://www.reutershealth.com            http://www.ccil.org/~cowan
                .e'osai ko sarji la lojban.
                Please support Lojban!          http://www.lojban.org

-----------------------------------------------------------------
The xml-dev list is sponsored by XML.org <http://www.xml.org> , an
initiative of OASIS <http://www.oasis-open.org> 

The list archives are at http://lists.xml.org/archives/xml-dev/

To subscribe or unsubscribe from this list use the subscription
manager: <http://lists.xml.org/ob/adm.pl> 
Thread:
Roger L. Costello
=?ISO-8859-1?Q?Bill_de_h=D3ra?=
Emmanuil Batsis (Manos)
John Cowan
David Carlisle
Thomas B. Passin

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved