comp.lang.ada
 help / color / mirror / Atom feed
From: dmitry@elros.cbb-automation.de (Dmitry A. Kazakov)
Subject: Re: Problem trying to implement generics.
Date: Mon, 16 Apr 2001 14:34:06 GMT
Date: 2001-04-16T14:34:06+00:00	[thread overview]
Message-ID: <3adafb3f.11489051@news.cis.dfn.de> (raw)
In-Reply-To: 9bcttr$134$1@taliesin.netcom.net.uk

On Sun, 15 Apr 2001 22:44:23 +0200, "Ayende Rahien" <Dont@spam.me>
wrote:

>"Dmitry A. Kazakov" <dmitry@elros.cbb-automation.de> wrote in message
>news:3AD9A697.8080402@elros.cbb-automation.de...
>>
>>
>> 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?
>>
>> The difference between them is that a function may (supposedly) have no
>> side effects and hence no [in]out parameters. Function is (I am trying
>> to follow rigorous point of view) an attempt to model mathematical
>mappings.
>
>Do you mean that it's similar to const fucntions in C++?

I think Ada's functions are similar to ones in C++, which have all
parameters const. Though both only mimic mathematical mappings
(functions), for a programmer always has an ability to achive side
effects.

Moreover no routine can have no side effects. Something allways
happens upon its call. For instance the process working page set may
be extended in the result of a function call, etc.

So it is mostly about which side effects are counted for relevant and
which not. From my point of view there is nothing wrong which a
*function* that reads a character from the file. Yes it changes the
state of the file, but this effect is not relevant to me, as well as
one that the operator should move the mouse and press a button to
deliver me that character. If I would like for some reason to ensure
that the file state is not changed, then I would pass it as an
in-parameter and would be awarded with a compilation error, because an
inout-parameter is required. It is stone-safe. So in my opinion the
distiction between functions and procedures is rather unnatural. But
it would OK if procedures could return values.

Regards,
Dmitry Kazakov



  reply	other threads:[~2001-04-16 14:34 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
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 [this message]
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