comp.lang.ada
 help / color / mirror / Atom feed
From: Harald Korneliussen <vintermann@gmail.com>
Subject: Re: not null
Date: Fri, 6 Mar 2009 05:05:40 -0800 (PST)
Date: 2009-03-06T05:05:40-08:00	[thread overview]
Message-ID: <cf60827d-f499-4094-8da8-a9193a4da3e6@l39g2000yqn.googlegroups.com> (raw)
In-Reply-To: 87mybyg6tv.fsf@nbi.dk

On Mar 6, 1:43 pm, Jacob Sparre Andersen <spa...@nbi.dk> wrote:
> Harald Korneliussen wrote:
> > You can use algebraic data types to do that in a type safe manner.
> > Haskell, Ocaml and many smaller functional languages do: If a
> > function returns a "Maybe Integer" type, the compiler will warn you
> > if you pretend it's an Integer without dealing with the "Nothing"
> > case.
>
> Can this be implemented as a static check?  (Or is there a good reason
> that it is only a warning?)
>
> It would be nice(TM) if Ada compilers could do something like that for
> with null access types.
>

It can be enforced, of course. It could be implemented in Ada, but to
do it without serious program analysis, I think there would need to be
a special function that separates the cases (Null and not null) and
sends the program down one path or the other - naturally, with only
the not-null path having access to a variable of the base type. The
compiler could then insure that (almost) the only operation that could
be performed on the possibly-null type was this function.

In Haskell and Ocaml this is done with pattern matching on types.



  reply	other threads:[~2009-03-06 13:05 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-04 14:44 not null Georg Bauhaus
2009-03-04 14:56 ` Hyman Rosen
2009-03-04 15:22   ` Georg Bauhaus
2009-03-04 16:16     ` Adam Beneschan
2009-03-05 14:24       ` Georg Bauhaus
2009-03-05 16:07         ` Adam Beneschan
2009-03-06  1:07       ` Hibou57 (Yannick Duchêne)
2009-03-04 16:09   ` Adam Beneschan
2009-03-04 20:38     ` Dmitry A. Kazakov
2009-03-05  1:54       ` Adam Beneschan
2009-03-05  8:42         ` Dmitry A. Kazakov
2009-03-05  1:32     ` Brian Drummond
2009-03-05  1:47       ` Adam Beneschan
2009-03-05 11:32         ` Brian Drummond
2009-03-05 15:06           ` Dmitry A. Kazakov
2009-03-05 13:57         ` Georg Bauhaus
2009-03-05 19:53       ` Jack Mitchell
2009-03-05  8:49     ` Jacob Sparre Andersen
2009-03-05 16:10       ` Adam Beneschan
2009-03-05 17:20         ` Jacob Sparre Andersen
2009-03-06  1:04     ` Hibou57 (Yannick Duchêne)
2009-03-06 12:01     ` Harald Korneliussen
2009-03-06 12:43       ` Jacob Sparre Andersen
2009-03-06 13:05         ` Harald Korneliussen [this message]
2009-03-06 15:21       ` Dmitry A. Kazakov
2009-03-06 16:59         ` Harald Korneliussen
2009-03-06 17:48           ` Dmitry A. Kazakov
2009-03-06 20:05             ` Georg Bauhaus
2009-03-06 21:31               ` Dmitry A. Kazakov
2009-03-04 16:19   ` Robert A Duff
2009-03-04 20:39 ` Colin Paul Gloster
replies disabled

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