comp.lang.ada
 help / color / mirror / Atom feed
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





  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