comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <dmitry@elros.cbb-automation.de>
Subject: Re: Problem trying to implement generics.
Date: Sun, 15 Apr 2001 16:09:32 +0200
Date: 2001-04-15T16:09:32+02:00	[thread overview]
Message-ID: <3AD9AB9C.80405@elros.cbb-automation.de> (raw)
In-Reply-To: 3AD915C2.321EB048@worldnet.att.net



James Rogers wrote:

> 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.

Why? There are lot of cases where a procedure with a result would be 
natural: random generator, memory allocator, table search etc.

> 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. 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

The practice is exactly the point. Take a look at Windows API. You will 
discover functions returning values which nobody needs and modifying 
parameters as well as global system state.

Then I absolutely agree with you that ignoring the return value 
indicates a potential problem, therefore I would like to have a syntax 
construct for this, that will alert a code reader. Just like 
"unchecked_access". Moreover, I would like to have some syntax sugar for 
dummy [in]out parameters, but I have no idea how it cold look like.

Regards,
Dmitry Kazakov




  parent reply	other threads:[~2001-04-15 14:09 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
2001-04-15 14:09                               ` Dmitry A. Kazakov [this message]
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