From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,1dd28d5040ded1f8 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2002-05-16 09:39:03 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!uunet!sea.uu.net!ash.uu.net!spool0900.news.uu.net!reader0900.news.uu.net!not-for-mail Message-ID: <3CE3E0EE.8080408@mail.com> Date: Thu, 16 May 2002 12:40:14 -0400 From: Hyman Rosen User-Agent: Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.0rc2) Gecko/20020510 X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Announce: Grace project site operational References: <3CD88FBD.4070706@telepath.com> <3CD91E31.1060004@telepath.com> <3CDBD673.FF452A3D@otelco.net> <4519e058.0205140718.3ddb1b2a@posting.google.com> <3ce1424a$1@pull.gecm.com> <4519e058.0205150657.3b695758@posting.google.com> <3CE392C6.5A82A53C@brighton.ac.uk> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Organization: KBC Financial Products Cache-Post-Path: master.nyc.kbcfp.com!unknown@mosquito.nyc.kbcfp.com X-Cache: nntpcache 2.3.3 (see http://www.nntpcache.org/) NNTP-Posting-Host: 204.253.250.10 X-Trace: 1021567142 reader0.ash.ops.us.uu.net 6545 204.253.250.10 Xref: archiver1.google.com comp.lang.ada:24211 Date: 2002-05-16T12:40:14-04:00 List-Id: John English wrote: > Surely the "right" way to do it is to express each value as a tuple > consisting of magnitude and the exponents of each dimension, so > 9.8 m/s**2 is (9.8, length=>1, time=>-2). Yes. The question is, are the exponents part of the type, or part of the object? > Then you just have at most three versions of each operation So you are talking about making the exponents part of the object. This loses in two ways. First, every unit object carries along a tuple, instead of just holding its value. Second, the compiler no longer provides any type checking for unit correctness, since tuple compatibility will involve a runtime check.