From: Stefan.Lucks@uni-weimar.de
Subject: Re: some trivial questions?
Date: Thu, 2 Nov 2017 09:39:29 +0100
Date: 2017-11-02T09:39:29+01:00 [thread overview]
Message-ID: <alpine.DEB.2.20.1711020902240.20673@lucks-pc> (raw)
In-Reply-To: <ff607ea1-9d64-441b-b5e6-1a4377a5a199@googlegroups.com>
[-- Attachment #1: Type: text/plain, Size: 2178 bytes --]
On Wed, 1 Nov 2017, tclwarrior@gmail.com wrote:
> i meant to say, why doesn't "use" imply "with" i think every time you
> insert a use, you will most definitely add a with
Well, in short textbook examples you will find something like
"with Ada.Text_IO; use Ada.Text_IO",
as the so-called "context clause" (the first few lines of code, with only
"with" and "use" clauses).
But you should not extrapolate to larger programs. You may have to "with"
plenty of packages. But if they "use" more than one or two of them
in the context clause, the readability of your program quickly declines.
It can be quite hard to figure out to which package a certain subprogram
you are calling belongs to.
It is often better to "use" libraries locally, rather than in context
clauses. On the other hand, to "use" them (or to use them without a "use"
clause), you must always "with" them in the context clause. You could say,
the "with"s in the context clause define the dependencies of your program.
Variant 1: use in context clause:
with Ada.Text_IO;
use Ada.Text_IO;
procedure Hello_World is
begin
Put_Line("Hello World!");
end Hello_World;
Variant 2: "use" local
with Ada.Text_IO;
procedure Hello_World is
use Ada.Text_IO;
begin
Put_Line("Hello World!");
end Hello_World;
In thsz example, the difference between context-clause "use" and local
"use" does not really matter. But if you have a bigger package, it greatly
improves the readability to "use Ada.Text_IO" only in those subprograms,
which actually perform textual IO. Same for "use"ing other packages in
other subprograms, of course.
> i think in a program with a large import (use) list of libraries, this can
> save many lines and looks cleaner
As I worte before: You may have to "with" a long list of libraries, but
you should never "use" more than one or two of them in the context clause.
-------- I love the taste of Cryptanalysis in the morning! --------
www.uni-weimar.de/de/medien/professuren/mediensicherheit/people/stefan-lucks
----Stefan.Lucks (at) uni-weimar.de, Bauhaus-Universität Weimar, Germany----
next prev parent reply other threads:[~2017-11-02 8:39 UTC|newest]
Thread overview: 101+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-01 18:44 some trivial questions? tclwarrior
2017-11-01 19:55 ` Shark8
2017-11-01 20:03 ` Dmitry A. Kazakov
2017-11-01 21:30 ` Luke A. Guest
2017-11-06 22:43 ` Robert A Duff
2017-11-01 21:39 ` Jeffrey R. Carter
2017-11-02 1:19 ` tclwarrior
2017-11-02 3:04 ` Luke A. Guest
2017-11-02 4:19 ` gautier_niouzes
2017-11-06 22:52 ` Robert A Duff
2017-11-17 0:45 ` Randy Brukardt
2017-11-02 8:27 ` Dmitry A. Kazakov
2017-11-02 13:21 ` Simon Wright
2017-11-02 13:34 ` Dmitry A. Kazakov
2017-11-06 22:58 ` Robert A Duff
2017-11-07 11:50 ` Simon Wright
2017-11-17 0:51 ` Randy Brukardt
2017-11-17 8:32 ` Dmitry A. Kazakov
2017-11-18 1:14 ` Randy Brukardt
2017-11-18 9:19 ` Dmitry A. Kazakov
2017-11-20 5:40 ` J-P. Rosen
2017-11-20 8:22 ` Dmitry A. Kazakov
2017-11-20 22:03 ` Randy Brukardt
2017-11-21 10:26 ` Dmitry A. Kazakov
2017-11-22 0:56 ` Randy Brukardt
2017-11-22 1:14 ` Paul Rubin
2017-11-23 0:15 ` Randy Brukardt
2017-11-23 0:19 ` Victor Porton
2017-11-23 1:09 ` Paul Rubin
2017-11-28 0:24 ` Randy Brukardt
2017-11-22 8:42 ` Dmitry A. Kazakov
2017-11-23 0:19 ` Randy Brukardt
2017-11-23 1:11 ` Paul Rubin
2017-11-23 8:37 ` Dmitry A. Kazakov
2017-11-28 0:19 ` Randy Brukardt
2017-11-23 8:42 ` G. B.
2017-11-23 19:57 ` Blady
2017-11-23 21:30 ` J-P. Rosen
2017-11-23 23:24 ` Shark8
2017-11-23 22:13 ` Dennis Lee Bieber
2017-11-28 0:34 ` Randy Brukardt
2017-11-02 8:39 ` Stefan.Lucks [this message]
2017-11-02 10:29 ` Simon Wright
2017-11-02 10:37 ` Dmitry A. Kazakov
2017-11-02 16:54 ` Jeffrey R. Carter
2017-11-02 17:17 ` Simon Wright
2017-11-02 3:53 ` gautier_niouzes
2017-11-02 11:15 ` joakimds
2017-11-06 19:33 ` G. B.
2017-11-06 20:53 ` Pascal Obry
2017-11-06 21:07 ` Dmitry A. Kazakov
2017-11-06 21:14 ` Pascal Obry
2017-11-06 21:21 ` Dmitry A. Kazakov
2017-11-17 0:57 ` Randy Brukardt
2017-11-17 8:40 ` Dmitry A. Kazakov
2017-11-17 9:12 ` Simon Wright
2017-11-18 1:27 ` Randy Brukardt
2017-11-18 2:29 ` Dennis Lee Bieber
2017-11-18 9:32 ` Dmitry A. Kazakov
2017-11-06 21:16 ` Simon Wright
2017-11-06 21:43 ` Pascal Obry
2017-11-17 0:59 ` Randy Brukardt
2017-11-06 22:37 ` Robert A Duff
2017-11-07 2:25 ` Dennis Lee Bieber
2017-11-07 8:34 ` Dmitry A. Kazakov
2017-11-08 22:49 ` Robert A Duff
2017-11-09 8:49 ` Dmitry A. Kazakov
2017-11-09 15:36 ` AdaMagica
2017-11-09 16:58 ` Dmitry A. Kazakov
2017-11-09 18:10 ` AdaMagica
2017-11-09 20:05 ` Dmitry A. Kazakov
2017-11-09 21:11 ` AdaMagica
2017-11-09 21:38 ` Dmitry A. Kazakov
2017-11-09 22:52 ` AdaMagica
2017-11-10 8:18 ` Dmitry A. Kazakov
2017-11-10 18:21 ` J-P. Rosen
2017-11-10 19:34 ` Dmitry A. Kazakov
2017-11-11 11:32 ` AdaMagica
2017-11-11 12:17 ` Dmitry A. Kazakov
2017-11-11 15:38 ` AdaMagica
2017-11-11 21:36 ` Dmitry A. Kazakov
2017-11-12 5:21 ` J-P. Rosen
2017-11-14 16:49 ` Robert Eachus
2017-11-14 17:34 ` Jeffrey R. Carter
2017-11-17 1:11 ` Randy Brukardt
2017-11-17 8:42 ` Dmitry A. Kazakov
2017-11-10 20:30 ` G. B.
2017-11-17 1:08 ` Randy Brukardt
2017-11-09 22:43 ` Robert A Duff
2017-11-09 22:56 ` AdaMagica
2017-11-10 8:22 ` Dmitry A. Kazakov
2017-11-10 15:47 ` Robert A Duff
2017-11-10 15:54 ` Dmitry A. Kazakov
2017-11-14 15:58 ` Robert Eachus
2017-11-14 16:22 ` Dmitry A. Kazakov
2017-11-17 1:16 ` Randy Brukardt
2017-11-17 1:06 ` Randy Brukardt
2017-11-09 18:08 ` Simon Wright
2017-11-09 20:07 ` Dmitry A. Kazakov
2017-11-07 17:41 ` Jeffrey R. Carter
2017-11-08 10:20 ` Brian Drummond
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox