comp.lang.ada
 help / color / mirror / Atom feed
From: Niklas Holsti <niklas.holsti@tidorum.invalid>
Subject: Re: Text_IO, was: Re: Something I don't understand
Date: Tue, 18 Feb 2014 09:14:26 +0200
Date: 2014-02-18T09:14:26+02:00	[thread overview]
Message-ID: <bmgfiiF4jciU1@mid.individual.net> (raw)
In-Reply-To: <swsor6oximy0$.zglgiwn94pd3.dlg@40tude.net>

On 14-02-17 21:55 , Dmitry A. Kazakov wrote:
> On Mon, 17 Feb 2014 19:42:07 +0200, Niklas Holsti wrote:
> 
>> On 14-02-17 19:17 , Dmitry A. Kazakov wrote:
>>> On Mon, 17 Feb 2014 18:59:43 +0200, Niklas Holsti wrote:
>>>
>>>> I think that the present method of concatenating strings or using
>>>> several Puts is good; what is needed is to extend or replace the 'Image
>>>> attribute with similar value-to-string functions which are more
>>>> controllable, flexible, and work also for composite types.
>>>
>>> Except that all these need to be MD primitive operations. There is no way
>>> to solve this without MD.
>>
>> Why multiple dispatch?
> 
> Print (Display, Shape)
> 
> is a textbook example of MD.
> 
>> Which would be the multiple controlling
>> parameters?
> 
> File and Value
> 
>> I think only the input value should be controlling; perhaps
>> you think that the output channel/device should also be controlling?
> 
> Certainly so. Consider ASCII_File, UTF8_File, Gtk_Text_Buffer_Record and so
> on.

That could be done using overloading based on the expected type of the
Image function result, instead of multiple dispatch. Of course that
would require different types to represent ASCII strings and UTF8
strings, etc. Using different types for different kinds of strings would
be a good thing anyway, IMO (but I know that this causes problems with a
combinatorial explosion of the number of predefined subprograms
involving strings).

> You cannot convert to string before sending it out, because ASCII will
> use E for power of 10, UTF8 will use superscript characters for it, and
> Gtk_Text_Buffer_Record will do the GTK markup language.

Hrm. I'm not at all sure that I would want such different formatting for
different output channels to happen automatically. For one thing, using
superscripts for exponents would prevent or complicate the user's
copy-paste operations, for example copying the output of a Float number
into a calculator accessory.

There should really be a type "Text" that represents text, with all its
complications of encoding, formatting, styles, fonts, lines, paragraphs,
tabulation, indentation, language, ... True, that is horribly complex,
but that's reality now. It is debatable if this should be in the
language, or in toolkits (GUI or others). Probably some core part of it
should be in the language and the rest in a toolkit or in an optional
Annex to the language.

-- 
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
      .      @       .


  reply	other threads:[~2014-02-18  7:14 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-13 23:57 Something I don't understand Laurent
2014-02-14  0:18 ` adambeneschan
2014-02-14  7:05   ` Charles H. Sampson
2014-02-15 15:27   ` Laurent
2014-02-15 19:10     ` Laurent
2014-02-15 20:05       ` Niklas Holsti
2014-02-15 21:16         ` Laurent
2014-02-15 21:40       ` Jeffrey Carter
2014-02-16  1:39       ` Robert A Duff
2014-02-16  9:08         ` Text_IO, was: " Simon Clubley
2014-02-16  9:43           ` Dmitry A. Kazakov
2014-02-16 16:57             ` Dennis Lee Bieber
2014-02-16 16:17           ` Robert A Duff
2014-02-17 12:52             ` Simon Clubley
2014-02-17 15:32               ` G.B.
2014-02-17 15:35                 ` G.B.
2014-02-17 17:34                 ` Mike H
2014-02-17 16:59               ` Niklas Holsti
2014-02-17 17:17                 ` Dmitry A. Kazakov
2014-02-17 17:42                   ` Niklas Holsti
2014-02-17 19:55                     ` Dmitry A. Kazakov
2014-02-18  7:14                       ` Niklas Holsti [this message]
2014-02-18  8:40                         ` Dmitry A. Kazakov
2014-02-18  9:00                           ` Niklas Holsti
2014-02-18  9:31                             ` Dmitry A. Kazakov
2014-02-19  8:36                               ` Niklas Holsti
2014-02-19  9:40                                 ` Dmitry A. Kazakov
2014-02-19 13:20                                   ` Niklas Holsti
2014-02-19 14:13                                     ` Dmitry A. Kazakov
2014-02-19 15:37                                       ` Georg Bauhaus
2014-02-19 16:32                                         ` Laurent
2014-02-19 17:46                                           ` Simon Clubley
2014-02-20  2:39                                         ` Dennis Lee Bieber
2014-02-20 11:44                                           ` G.B.
2014-02-19 21:45                                       ` Niklas Holsti
2014-02-20  9:52                                         ` Dmitry A. Kazakov
2014-02-20 18:19                                           ` Niklas Holsti
2014-02-19 15:06                                     ` Robert A Duff
2014-02-19 17:03                                       ` Niklas Holsti
2014-02-19 22:30                                         ` Robert A Duff
2014-02-17 18:13                 ` Simon Clubley
2014-02-17 20:09                   ` Dmitry A. Kazakov
2014-02-18  7:50                     ` Georg Bauhaus
2014-02-18  8:28                       ` Dmitry A. Kazakov
2014-02-17 20:22                   ` Niklas Holsti
2014-02-18  0:50                     ` Simon Clubley
2014-02-18  6:56                       ` Niklas Holsti
2014-02-18  8:04                         ` Georg Bauhaus
2014-02-19 22:01                     ` Robert A Duff
2014-02-20  8:25                       ` Dmitry A. Kazakov
2014-02-20 15:54                         ` Robert A Duff
2014-02-20 17:54                           ` Dmitry A. Kazakov
2014-02-20 20:45                       ` Niklas Holsti
2014-02-19 21:52                   ` Robert A Duff
2014-02-20  0:50                     ` Simon Clubley
2014-02-19 21:46                 ` Robert A Duff
2014-02-20  0:09                   ` Jeffrey Carter
2014-02-20  1:09                     ` Simon Clubley
2014-02-20  7:06                       ` Niklas Holsti
2014-02-20 13:05                         ` Simon Clubley
2014-02-20 11:51                       ` G.B.
2014-02-20 12:53                         ` Simon Clubley
2014-02-21 11:50                       ` Brian Drummond
2014-02-23 21:37                         ` AdaMagica
2014-02-23 23:23                           ` Bill Findlay
2014-02-24  4:29                           ` AdaMagica
2014-02-24 12:22                           ` Brian Drummond
2014-02-24 19:03                             ` AdaMagica
2014-02-20 20:02                   ` Niklas Holsti
2014-02-19 21:15               ` Robert A Duff
2014-02-19 22:01                 ` Simon Clubley
2014-02-16 14:50         ` Mike H
2014-02-17 16:09         ` Laurent
2014-02-17 17:42           ` Mike H
2014-02-18  1:05             ` Dennis Lee Bieber
2014-02-17 22:31           ` Jeffrey Carter
2014-02-19 12:51             ` Laurent
replies disabled

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