comp.lang.ada
 help / color / mirror / Atom feed
From: Jacob Sparre Andersen <sparre@nbi.dk>
Subject: Parametrically polymorphic operations (Was: Safe C++)
Date: Thu, 20 Sep 2001 13:37:57 +0200
Date: 2001-09-20T13:37:57+02:00	[thread overview]
Message-ID: <3BA9D515.1E6C7A49@nbi.dk> (raw)
In-Reply-To: 9ob2u6$2r4l$1@msunews.cl.msu.edu

Chad:

> "Brian Rogoff" <bpr@shell5.ba.best.com> wrote in message
[...]
> > Parametrically polymorphic functions

> I'll have to trust you or these three since I have never encountered a
> situation where I was ever wishing for such functionality.

While working on libraries for matrix operations and unit
safe types, I have certainly wanted something very similar
to parametrically polymorphic functions. It would make it
possible to have more extensive compile time checks, than
what is possible with Ada as it is defined today.

An example:

   type Matrix (Left, Right : Positive) is private;

   function "*" (Left  : in Matrix;
                 Right : in Matrix (Height => Left.Width))
     return Matrix (Width  => Right.Width,
                    Height => Left.Height);

(I hope the intention is clear although the syntax isn't
defined)

This would tell the compiler a few things, which would allow
it to
flag type mismatches already at compile time.

The current Ada specification forces us to move these checks
into the body of the functions and procedures.

Jacob
-- 
"an OS that is almost, but not quite, entirely unlike
Windows"



  parent reply	other threads:[~2001-09-20 11:37 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-09-18 19:45 Safe C++ Richard Riehle
2001-09-19 14:38 ` Brian Rogoff
2001-09-19 15:52   ` Chad Robert Meiners
2001-09-19 17:43     ` Brian Rogoff
2001-09-19 21:38       ` Chad R. Meiners
2001-09-20  3:38         ` Brian Rogoff
2001-09-20 11:52           ` Pat Rogers
2001-09-20 16:01             ` Brian Rogoff
2001-09-20  8:22         ` Colin Paul Gloster
2001-09-20 13:45           ` Chad R. Meiners
2001-09-20 21:03             ` codesavvy
2001-09-20 11:37         ` Jacob Sparre Andersen [this message]
2001-09-20 11:41           ` Parametrically polymorphic operations (Was: Safe C++) Lutz Donnerhacke
2001-09-20 12:27             ` Jacob Sparre Andersen
2001-09-20 15:49           ` Brian Rogoff
2001-09-21  9:24             ` Jacob Sparre Andersen
2001-09-20 16:22           ` Dmitry A. Kazakov
2001-09-21 16:08           ` Wes Groleau
2001-09-21 17:13             ` Jacob Sparre Andersen
2001-09-21 18:43               ` Wes Groleau
2001-09-20  2:41       ` Safe C++ David Botton
2001-09-20  2:39   ` David Botton
2001-09-20  3:21     ` Brian Rogoff
2001-09-20 12:43       ` David Botton
2001-09-25 14:21   ` Region-based mem mgmt [was: Re: Safe C++] Tucker Taft
2001-09-25 14:46     ` Tucker Taft
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox