From: "Ayende Rahien" <Dont@spam.me>
Subject: Re: Problem trying to implement generics.
Date: Sun, 15 Apr 2001 14:20:07 +0200
Date: 2001-04-15T14:20:07+02:00 [thread overview]
Message-ID: <9bc1lb$o1$1@taliesin.netcom.net.uk> (raw)
In-Reply-To: 3AD915C2.321EB048@worldnet.att.net
"James Rogers" <jimmaureenrogers@worldnet.att.net> wrote in message
news:3AD915C2.321EB048@worldnet.att.net...
> Ayende Rahien wrote:
> >
> > "Dmitry A. Kazakov" <dmitry@elros.cbb-automation.de> wrote in message
> > news:3AD858A3.3070803@elros.cbb-automation.de...
> > > Well, but what I still cannot understand, what is the objection
against
> > > *procedures* returning a value:
> >
> > Because that is the difference between functions & procedures?
> > If you wanted it that way, you could do this:
> > function Foo(...) return nothing;
> >
> > But I agree that it would be nice to be able to ignore function's return
> > value.
>
> A procedure may modify parameters, but may not return a value.
>
> The practice in C, C++, and Java of ignoring return values from
> functions or methods may seem very convenient. In fact it is a
> fundamental violation of the contract defined for a function. This
> is the single greatest reason exceptions were added to C++, and
> included from the start in Java.
I thought that they added exceptions because of this type of functions:
int & Foo();
Where there is no return value that you can use for errors.
For the rest, I agree.
> A common C programming paradigm
> is to have a function return an indication of success or failure.
> That same function may also modify some or all parameter values.
> It is also very common in C to ignore the return value of a
> function. What is the obvious problem? If the return value
> indicates success or failure, and that value is ignored, then the
> programmer is ensuring erroneous execution. Whenever the function
> fails, the programmer using that function continues to use the
> modified parameter values as though the function succeeded. This
> usually leads to very difficult debugging sessions because the error
> may not become obvious in the program until some later code block.
> It also relies upon the sometimes lucky choice of test cases to
> generate the error condition. If your test cases do not generate
> the error, then you will release erroneous code to your
> customer, which they will find for you, usually at significant
> expense for your company.
>
> In Ada you have a very strong contract concerning procedures and
> functions. Functions always return a value. That value has significant
> meaning. It cannot be ignored. Procedures are the form of subprogram
> to use when no significant value is to be returned.
>
> Jim Rogers
> Colorado Springs, Colorado USA
next prev parent reply other threads:[~2001-04-15 12:20 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-04-11 15:04 Problem trying to implement generics Ayende Rahien
2001-04-12 1:41 ` tmoran
2001-04-12 13:15 ` Ayende Rahien
2001-04-12 18:15 ` tmoran
2001-04-13 11:18 ` Ayende Rahien
2001-04-13 10:35 ` chris.danx
2001-04-13 11:54 ` Ayende Rahien
2001-04-13 11:49 ` chris.danx
2001-04-13 23:03 ` Ayende Rahien
2001-04-13 23:01 ` Robert A Duff
2001-04-14 0:05 ` Brian Rogoff
2001-04-14 1:12 ` Ayende Rahien
2001-04-14 1:44 ` Brian Rogoff
2001-04-14 14:03 ` Dmitry A. Kazakov
2001-04-14 16:30 ` Ayende Rahien
2001-04-14 16:28 ` Michael Erdmann
2001-04-15 3:27 ` James Rogers
2001-04-15 12:20 ` Ayende Rahien [this message]
2001-04-15 14:09 ` Dmitry A. Kazakov
2001-04-15 18:22 ` tmoran
2001-04-15 13:48 ` Dmitry A. Kazakov
2001-04-15 20:44 ` Ayende Rahien
2001-04-16 14:34 ` Dmitry A. Kazakov
2001-04-14 1:33 ` Robert A Duff
2001-04-17 8:50 ` Jean-Pierre Rosen
2001-04-17 13:20 ` Tucker Taft
2001-04-17 16:51 ` Ayende Rahien
2001-04-17 17:16 ` Larry Hazel
2001-04-17 18:11 ` Brian Rogoff
2001-04-17 19:10 ` Marin David Condic
2001-04-17 21:08 ` Brian Rogoff
2001-04-18 15:16 ` Chad R. Meiners
2001-04-18 16:33 ` Marin David Condic
2001-04-17 21:09 ` chris.danx
2001-04-17 21:11 ` chris.danx
2001-04-17 21:17 ` chris.danx
2001-05-08 5:40 ` Lao Xiao Hai
2001-05-11 9:43 ` John English
2001-05-12 19:16 ` Lao Xiao Hai
2001-04-17 19:32 ` Larry Hazel
2001-04-17 21:03 ` Ayende Rahien
2001-04-18 15:48 ` Brian Rogoff
2001-04-20 12:34 ` Georg Bauhaus
2001-04-20 12:42 ` Lutz Donnerhacke
2001-04-20 12:45 ` Lutz Donnerhacke
2001-04-20 19:48 ` Brian Rogoff
2001-04-20 20:36 ` David Starner
2001-04-20 23:02 ` Robert A Duff
2001-04-23 2:45 ` Brian Rogoff
2001-04-24 1:15 ` Robert A Duff
2001-04-24 2:00 ` Brian Rogoff
2001-04-24 15:12 ` Georg Bauhaus
2001-04-24 15:09 ` Georg Bauhaus
2001-04-24 18:36 ` Marius Amado Alves
2001-04-19 13:08 ` Larry Kilgallen
[not found] ` <9bi4g4$97m$1@nh.pace.Organization: LJK Software <YlSyXUaQmD+$@eisner.encompasserve.org>
2001-04-19 14:20 ` Marin David Condic
2001-04-18 5:34 ` Mike Silva
2001-04-18 16:55 ` Ray Blaak
2001-04-24 16:00 ` Tucker Taft
2001-04-12 13:57 ` Andy
2001-04-13 6:34 ` Simon Wright
2001-04-13 11:11 ` Ayende Rahien
2001-04-12 18:06 ` Stephen Leake
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox