From: Georg Bauhaus <bauhaus@futureapps.de>
Subject: Re: Generic Package
Date: Mon, 30 Apr 2007 19:24:52 +0200
Date: 2007-04-30T19:19:10+02:00 [thread overview]
Message-ID: <1177953892.13970.23.camel@localhost> (raw)
In-Reply-To: <2aq08qbvw0ym$.1rquampzo7o53.dlg@40tude.net>
On Mon, 2007-04-30 at 18:29 +0200, Dmitry A. Kazakov wrote:
> > "The foreach procedure operates as if the following body
> > were written
> >
> > procedure foreach(S: Set) is
> > C: Cursor;
> > begin
> > C := first(S);
>
> You forgot that first is not defined on Set,
I was tempted to add
C := first(S); -- where first picks any as defined for the
-- `first` operation on sets; gimmeacursor(S);
> which is not well-ordered and
> thus does not have visible implementations of
As I said, Iterate operates as if it were implemented the way shown.
I had intended to base the argument on your prior remark that we
can specify the preconditions on next etc. I claim that we can
give a meaningful definition of First, too, which is not given by
the usual meaning of First; we could call it Frumble if you like.
> > while has_element(C) loop
> > P(C);
> > next(C);
> > end loop;
> > end;
> >
> > "The set S is locked while foreach is executing."
>
> Concurrency is not the issue.
OK
> The set
> is declared unordered.
Yes. An iterator will work without an externally visible order.
> >> How could you prove that C.Get = S'Length?
> >
> > Given
> > Sum: Integer := 0;
> > procedure Count(C: Cursor) is
> > begin
> > Sum := Sum + 1;
> > end;
> > procedure how_many is new foreach(P => Count);
> > Still impossible to show the above after the first run?
>
> No, that would not be a proof, only a test. To make a proof out of it, you
> have to run this test on all possible programs with all possible sets.
No, I only have to combine the semantics of foreach as specified
previously, ":=", "+", etc. Then I can show that I get what I
asked for.
next prev parent reply other threads:[~2007-04-30 17:24 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-25 22:15 Generic Package andrew.carroll
2007-04-26 0:07 ` Jeffrey R. Carter
2007-04-26 7:46 ` Markus E Leypold
2007-04-26 6:02 ` Martin Krischik
2007-04-26 7:57 ` Dmitry A. Kazakov
2007-04-26 15:31 ` andrew.carroll
2007-04-26 16:07 ` Georg Bauhaus
2007-04-26 19:40 ` andrew.carroll
2007-04-26 20:01 ` Georg Bauhaus
2007-04-26 18:54 ` Dmitry A. Kazakov
2007-04-26 21:52 ` Simon Wright
2007-04-27 9:00 ` Dmitry A. Kazakov
2007-04-27 11:11 ` Georg Bauhaus
2007-04-27 12:06 ` Dmitry A. Kazakov
2007-04-27 12:52 ` Markus E Leypold
2007-04-27 14:10 ` Georg Bauhaus
2007-04-27 14:16 ` Dmitry A. Kazakov
2007-04-27 21:44 ` Georg Bauhaus
2007-04-28 7:38 ` Dmitry A. Kazakov
2007-04-28 17:50 ` Simon Wright
2007-04-28 21:04 ` Ray Blaak
2007-04-29 16:33 ` Markus E Leypold
2007-04-27 19:44 ` Simon Wright
2007-04-27 20:34 ` Dmitry A. Kazakov
2007-04-27 21:16 ` Simon Wright
2007-04-28 7:36 ` Dmitry A. Kazakov
2007-04-27 11:43 ` Markus E Leypold
2007-04-28 17:35 ` Dmitry A. Kazakov
2007-04-28 23:06 ` Georg Bauhaus
2007-04-29 8:19 ` Dmitry A. Kazakov
2007-04-29 15:10 ` (see below)
2007-04-29 17:48 ` Dmitry A. Kazakov
2007-04-29 22:36 ` (see below)
2007-04-30 6:58 ` Dmitry A. Kazakov
2007-04-30 9:59 ` Markus E Leypold
2007-04-30 10:01 ` Markus E Leypold
2007-04-30 10:36 ` Georg Bauhaus
2007-04-30 10:40 ` Georg Bauhaus
2007-04-30 12:14 ` Dmitry A. Kazakov
2007-04-30 14:57 ` (see below)
2007-04-30 10:30 ` Georg Bauhaus
2007-04-30 12:16 ` Dmitry A. Kazakov
2007-04-30 14:48 ` Georg Bauhaus
2007-04-30 16:29 ` Dmitry A. Kazakov
2007-04-30 17:24 ` Georg Bauhaus [this message]
2007-04-30 18:54 ` Dmitry A. Kazakov
2007-04-30 19:29 ` Simon Wright
2007-04-30 20:04 ` Dmitry A. Kazakov
2007-05-01 0:11 ` Markus E Leypold
2007-05-01 9:02 ` Georg Bauhaus
2007-05-01 10:19 ` Dmitry A. Kazakov
2007-05-01 13:42 ` Georg Bauhaus
2007-05-01 17:16 ` Dmitry A. Kazakov
2007-05-01 19:14 ` Randy Brukardt
2007-05-01 20:14 ` Dmitry A. Kazakov
2007-05-02 7:52 ` Markus E Leypold
2007-05-02 8:06 ` Markus E Leypold
2007-05-03 0:37 ` Randy Brukardt
2007-05-03 8:36 ` Markus E Leypold
2007-05-03 23:16 ` Randy Brukardt
2007-05-04 0:15 ` Markus E Leypold
2007-05-01 21:41 ` Georg Bauhaus
2007-05-02 6:57 ` Ray Blaak
2007-05-02 8:22 ` Markus E Leypold
2007-05-02 8:07 ` Markus E Leypold
2007-05-02 10:29 ` Dmitry A. Kazakov
2007-05-02 11:48 ` Georg Bauhaus
2007-05-02 11:50 ` Georg Bauhaus
2007-05-02 13:12 ` Dmitry A. Kazakov
2007-05-02 14:21 ` Markus E Leypold
2007-05-03 18:27 ` Georg Bauhaus
2007-05-03 19:07 ` Dmitry A. Kazakov
2007-05-03 19:49 ` Markus E Leypold
2007-04-29 16:26 ` Markus E Leypold
2007-04-26 21:50 ` Simon Wright
2007-04-27 4:45 ` Jeffrey R. Carter
2007-04-27 7:45 ` Martin Krischik
2007-04-27 22:54 ` Georg Bauhaus
2007-04-30 20:13 ` Matthew Heaney
2007-04-26 20:48 ` andrew.carroll
-- strict thread matches above, loose matches on Subject: below --
2003-12-02 23:15 Mr. J.
2003-12-03 9:31 ` Dmitry A. Kazakov
2003-12-02 23:13 generic package Ratson Janiv
2003-12-03 17:39 ` 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