From: Ludovic Brenta <ludovic@ludovic-brenta.org>
Subject: Re: Ann: Little tutorial about streams
Date: Mon, 28 Feb 2011 21:32:36 +0100
Date: 2011-02-28T21:32:36+01:00 [thread overview]
Message-ID: <8739n7vr17.fsf@ludovic-brenta.org> (raw)
In-Reply-To: f8e7ccbf-a966-4568-9f0d-8e9e38f37dc6@glegroupsg2000goo.googlegroups.com
mockturtle writes:
> Dear.all,
> remembering my initial difficulties with streams (I self-taught Ada,
> using few tutorials and lots of experiments before landing to the RM),
> I decided to write a page (my first one, so be patient :-) of the
> Wikibook with a little stream tutorial
>
> http://en.wikibooks.org/w/index.php?title=Ada_Programming/Input_Output/Stream_Tutorial
>
> As said in the page, the goal is to give to the reader an intuitive
> idea about how streams work so, in order to not hide the forest with
> too many leaves, some of the finest details have been omitted. A
> subpage of the above page has a fairly complex example that is not
> complete yet, but I plan to complete it soon.
>
> The page is not linked yet with the book body. I was thinking to add
> a link to it in the "Input Output" page as soon as the subpage with
> the example is in a good state.
>
> Any feedback [especially positive one :-) :-) :-) :-)] is appreciated.
Your page is great. How's that for positive criticism :)
I've made a couple edits which you are, of course, free to revert. I
(think I) have generally improved the style of the prose but not changed
the basic structure of the tutorial.
Now I have specific suggestions for further improvement:
* Between the sections "Abstract streams" and "Serialization functions",
it would be nice to have a section on "Predefined concrete streams"
discussing, in particular Ada.Text_IO.Text_Stream, so that beginners
can start writing to the console using streams.
* In the section about Ada.Text_IO.Text_Streams, explain that this is
much faster than Ada.Text_IO and why (hint: ARM A.10.4, A.12.2(7))
* Your first example of a serialization function, procedure
Example.Print, seems too complicated. But that may be on purpose, so
I have not changed it. Here is a simpler implementation:
package body Example is
procedure Print (Stream : not null access Ada.Streams.Root_Stream_Type'Class;
Item : in Int)
is
-- Convert Item to String (with no trailing space)
Value : String := Trim(Int'Image(Item), Left);
-- Convert Value'Length to String (with no trailing space)
Len : String := Trim(Integer'Image(Value'Length), Left);
begin
String'Write (Stream, Len & 'i' & Value);
end Print;
end Example;
Thank you for taking the initiative writing this nice tutorial. I think
it really helps lower the bar for novices.
--
Ludovic Brenta.
next prev parent reply other threads:[~2011-02-28 20:32 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-28 17:00 Ann: Little tutorial about streams mockturtle
2011-02-28 20:32 ` Ludovic Brenta [this message]
2011-03-01 3:48 ` Randy Brukardt
2011-03-01 9:54 ` AdaMagica
2011-03-01 10:16 ` Dmitry A. Kazakov
2011-03-01 13:56 ` Simon Wright
2011-03-01 14:38 ` Dmitry A. Kazakov
2011-03-04 20:58 ` mockturtle
2011-03-05 1:08 ` Shark8
2011-03-05 1:35 ` Randy Brukardt
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox