Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84 (Fortune 01.1b1); site graffiti.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!seismo!ut-sally!ut-ngp!shell!graffiti!peter
From: peter@graffiti.UUCP (Peter da Silva)
Newsgroups: net.lang.ada
Subject: Re: text_io problems
Message-ID: <229@graffiti.UUCP>
Date: Mon, 23-Sep-85 07:30:52 EDT
Article-I.D.: graffiti.229
Posted: Mon Sep 23 07:30:52 1985
Date-Received: Wed, 25-Sep-85 03:49:55 EDT
References: <8509172214.AA04519@UCB-VAX.ARPA>
Organization: The Power Elite, Houston, TX
Lines: 23

> I am not proposing any changes to the language to address this, since
> there are good reasons for the limitation.  Though well defined in the ARM,
> the IO packages are not really part of the language in the sense that they are
> packages like any other, not to be implemented by special features such as
> routines with variable numbers of parameters.  For a variety of good reasons,
> variable number of parameters are not permitted.

What is wrong with a well-defined varargs interface? It doesn't have to be
efficient: if you want efficient I/O you're going to be packing stuff into
buffers and feeding them out through direct writes. Maybe an array of structs
like so (ADA ref manual not here, so I'll do it in Pascal, yet another language
I'm no longer familiar with):

type arg: record
		case tag: integer in
			0: int: integer;
			1: flt: real;
			2: chr: character;
			3: str: string;
		end
	  end;

It would also be useful for symbol tables & the like.