comp.lang.ada
 help / color / mirror / Atom feed
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----

  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