From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: not null
Date: Fri, 6 Mar 2009 18:48:58 +0100
Date: 2009-03-06T18:48:59+01:00 [thread overview]
Message-ID: <11kj0o80w9j7k.15bjz2vugzuvv$.dlg@40tude.net> (raw)
In-Reply-To: ffa23435-c854-4b6b-811b-b4a8e95a7280@t3g2000yqa.googlegroups.com
On Fri, 6 Mar 2009 08:59:41 -0800 (PST), Harald Korneliussen wrote:
> On Mar 6, 4:21�pm, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
> wrote:
>> On Fri, 6 Mar 2009 04:01:45 -0800 (PST), Harald Korneliussen wrote:
>>> On Mar 4, 5:09�pm, Adam Beneschan <a...@irvine.com> wrote:
>>
>>>> I'm having difficulty understanding the point. �You have to have the
>>>> idea of the lack of a reference. �How else would you implement a
>>>> linked list abstraction?
>>
>>> You can use algebraic data types to do that in a type safe manner.
>>
>> No, you cannot, if safe = static. The nodes of the list have contracts to
>> support certain operations. The only problem with null is that the virtual
>> object corresponding to null does not fulfill the contract:
>
> I don't understand your code example. But kind of like some Java
> functions won't compile unless they're surrounded by an appropriate
> try/catch block, you can make in Haskell a linked list get_next
> function that causes the compiler to protest - at compile time,
> naturally - if used in a context where the possibility of returning
> Nothing (null) isn't considered.
But this has nothing to do with null as a value. It does to exception
handling. The problem was moved to the client, which is the point.
(It is a pity that Ada does not have contracted exceptions.)
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2009-03-06 17:48 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
2009-03-06 15:21 ` Dmitry A. Kazakov
2009-03-06 16:59 ` Harald Korneliussen
2009-03-06 17:48 ` Dmitry A. Kazakov [this message]
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