[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] I/O redux

On 2011-05-03, at 00:30, John Cowan wrote:
> Vincent Manis scripsit:
>> I would also put in a weak suggestion for CONSOLE-INPUT-PORT and
> I think that's piling Pelion on Ossa.

I have never had a suggestion of mine dismissed quite that way before, but you're right, my suggestion deserved no less :). 

>> 5. [New] §6.7.1, bottom of col 2, p. 45. WITH-INPUT-FROM-FILE and
>> WITH-OUTPUT-TO-FILE are defined, but should not WITH-ERROR-TO-FILE
>> also be added?
> My feeling is that it's not useful enough: redirection of standard
> error should typically be done at program invocation time.  A program
> that wants to rebind standard error to syslog or the like can do so by
> passing a suitable port argument to CURRENT-ERROR.

Scheme in general has admirable consistency. For data type foo, you create an instance by calling MAKE-foo, you test type by doing foo?, and, if it makes sense to ask for the size of foo, you call foo-LENGTH. Scheme isn't perfect in that way; sometimes history trumps consistency, which is why we have LENGTH rather than LIST-LENGTH. But it's pretty good. 

Some of the additions to this revision of the report are particularly meritorious from a consistency viewpoint, such as the new division procedures, and {STRING,VECTOR}-(MAP,FOR-EACH}. 

Imagine that the WG had decided to provide STRING-MAP but not STRING-FOR-EACH, on the grounds that the latter is easy enough to program yourself. This is true, but if one were provided and the other omitted, I would feel a tiny bit less confident in my use of the language, because I'd need to look up in the Report whether something I had good reason to believe was there is actually there. 

There are three CURRENT-xxx-PORT procedures but only two WITH-xxx-TO-FILE procedures. That's why I think WITH-ERROR-TO-FILE should be provided.  

I'm very happy with John's other responses to my original email. 

-- vincent

Scheme-reports mailing list