|
Last call
Takashi Kato
(30 Jun 2013 07:00 UTC)
|
|
Re: Last call
Per Bothner
(30 Jun 2013 07:46 UTC)
|
|
Re: Last call
Takashi Kato
(30 Jun 2013 08:35 UTC)
|
|
Re: Last call
Per Bothner
(30 Jun 2013 15:47 UTC)
|
|
Re: Last call
Takashi Kato
(30 Jun 2013 17:01 UTC)
|
|
Re: Last call
Per Bothner
(30 Jun 2013 17:19 UTC)
|
|
Re: Last call
Takashi Kato
(30 Jun 2013 17:47 UTC)
|
|
Re: Last call
Per Bothner
(30 Jun 2013 18:04 UTC)
|
|
Re: Last call
Takashi Kato
(30 Jun 2013 18:29 UTC)
|
|
Re: Last call
Per Bothner
(30 Jun 2013 23:11 UTC)
|
|
Re: Last call John Cowan (01 Jul 2013 20:01 UTC)
|
|
Re: Last call
Shiro Kawai
(30 Jun 2013 09:02 UTC)
|
|
Re: Last call
Takashi Kato
(30 Jun 2013 09:30 UTC)
|
|
Re: Last call
Shiro Kawai
(30 Jun 2013 09:54 UTC)
|
|
Re: Last call
Takashi Kato
(30 Jun 2013 10:27 UTC)
|
|
Re: Last call
Shiro Kawai
(30 Jun 2013 11:44 UTC)
|
|
Re: Last call
Takashi Kato
(30 Jun 2013 17:02 UTC)
|
Per Bothner scripsit:
> What is a binary input/output port? There is no such thing in R7RS.
Well, there is no way to create one, but their potential existence is
allowed for. In particular, the opening paragraph of 6.13.1 says
Whether the input and output port types are disjoint is
implementation-dependent.
What is more, the discussion of `close-port` and friends says explicitly:
Scheme implementations may provide ports which are simultaneously
input and output ports, such as sockets; the close-input-port
and close-output-port procedures can then be used to close the
input and output sides of the port independently.
Common Lisp already has the functions `make-two-way-stream` and
`make-echo-stream` to achieve this at the Lisp level, so you will have
to solve the problem eventually.
And speaking of `make-echo-stream`:
> No, the issue is not Java, but what a "port" conceptually is
> (or should be): A "port" is a sequence of values, along with a current
> position in that sequence.
The trouble with that definition is that the position isn't necessarily
reifiable. A TTY can be seen as one stream or two, but in neither case
does it make sense to ask "What is the value of the position?" Instead,
I think it makes sense to think of a port as a (SRFI 41) stream (which in
fact is the terminology of CL): a lazy sequence (or cosequence) of values.
In some cases it's possible to rewind the stream to an earlier point,
in other cases not.
--
A rose by any other name John Cowan
may smell as sweet, http://www.ccil.org/~cowan
but if you called it an onion xxxxxx@ccil.org
you'd get cooks very confused. --RMS