comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Proposed change to BC iterator parameters
Date: Sat, 20 Dec 2003 13:20:13 +0100
Date: 2003-12-20T13:20:13+01:00	[thread overview]
Message-ID: <bs1ee5$8mva5$1@ID-77047.news.uni-berlin.de> (raw)
In-Reply-To: wcc1xr0whek.fsf@shell01.TheWorld.com

Robert A Duff wrote:

> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
> 
>> But Robert wants it in a non-OO way! I think that he's right. The
>> language should support both procedural and OO approaches, for they are
>> complimentary.
> 
> I'm not sure why you call the cursor style "OO".

Cursor is an object! (:-))

> But yes, both styles
> are useful.
> 
> What I *really* want is that the iterator can be written in whichever
> style is appropriate, and easily *used* in either style.  Converting the
> downward closure style to what you call the OO style (which I call the
> cursor style) requires language support for coroutines, or something
> very much like coroutines.

Mmm, I am not sure what you mean. Technically either you pass a callback
subroutine (+ its context) or you do an object (having a dispatching
subroutine), both should be equivalent. The only difference is in syntactic
sugar, i.e. (for cursor/OO approach) how easily one can derive a new type,
override a subprogram, pack the necessary context stuff in a cursor
instance. There should be a lot of sugar (and you have to do it at the
library level, oops!) However, if we could put a subprogram body in an
expression for the closure style, then we could also do it with the body of
a cursor's override. Why not? So in both cases one could jump out of an
iteration/recursion loop. But my concern is that non-local gotos and ad-hoc
exceptions violate contract. Actually there is no any contract of an
anonymous body. It is fine when the program is 50 lines long, but in a
medium-sized project it might become a nightmare. What would your debugger
show in the call-stack window for an anonymous body, after all? (:-))

> You can simulate coroutines using tasks and protected objects, but the
> syntax is over-the-top heavy.  Not to mention the inefficiency.

-- 
Regards,
Dmitry A. Kazakov
www.dmitry-kazakov.de



  reply	other threads:[~2003-12-20 12:20 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-12-10 13:36 Proposed change to BC iterator parameters amado.alves
2003-12-10 16:47 ` Proposed change to BC iterator parameters [limitedness] Georg Bauhaus
2003-12-10 17:39 ` Proposed change to BC iterator parameters Martin Krischik
2003-12-10 18:22 ` Jeffrey Carter
2003-12-10 23:00   ` Robert A Duff
2003-12-11  1:00     ` Jeffrey Carter
2003-12-11 15:09       ` Robert A Duff
2003-12-11  8:33     ` Dmitry A. Kazakov
2003-12-10 20:50 ` Simon Wright
2003-12-10 23:12 ` Robert A Duff
2003-12-11  5:07   ` Steve
2003-12-11 15:24     ` Robert A Duff
2003-12-11 17:39       ` Jeffrey Carter
2003-12-12 22:22         ` Robert A Duff
2003-12-13  0:57           ` Jeffrey Carter
2003-12-17 20:59             ` Robert A Duff
2003-12-18 10:05               ` Dmitry A. Kazakov
2003-12-18 18:14                 ` Robert A Duff
2003-12-19 10:53                   ` Dmitry A. Kazakov
2003-12-19 16:17                     ` Georg Bauhaus
2003-12-19 17:19                       ` Dmitry A. Kazakov
2003-12-19 22:51                         ` Robert A Duff
2003-12-20 12:20                           ` Dmitry A. Kazakov [this message]
2003-12-19 22:47                       ` Robert A Duff
2003-12-20  2:11                         ` Stephen Leake
2003-12-20 19:08                         ` Robert I. Eachus
2003-12-21 11:39                           ` Simon Wright
2003-12-21 18:13                             ` Robert I. Eachus
2003-12-21 13:58                           ` Dmitry A. Kazakov
2003-12-22  1:25                             ` Robert I. Eachus
     [not found]         ` <916oa1-c93.ln1@beastie.ix.netcom.com>
2003-12-13 16:57           ` Simon Wright
2003-12-12  5:29     ` Simon Wright
2003-12-12 22:26       ` Robert A Duff
2003-12-13 16:55         ` Simon Wright
2003-12-13 17:27           ` Dmitry A. Kazakov
2003-12-13  2:44       ` Steve
  -- strict thread matches above, loose matches on Subject: below --
2003-12-23 10:40 amado.alves
2003-12-19 15:53 amado.alves
2003-12-19 23:05 ` Robert A Duff
2003-12-11 16:02 amado.alves
2003-12-11 15:05 ada_wizard
2003-12-11 16:45 ` Robert A Duff
2003-12-11 12:56 amado.alves
2003-12-17 20:25 ` Robert A Duff
2003-12-11 12:43 amado.alves
2003-12-11 12:33 amado.alves
2003-12-10 14:39 amado.alves
2003-12-10  5:46 Simon Wright
2003-12-10 18:12 ` Jeffrey Carter
2003-12-11 16:10   ` Martin Krischik
2003-12-10 20:59 ` Simon Wright
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox