Scheme language standardization process
On 07/02/2012 06:02 AM, Marc Feeley wrote: > I also expect a bidirectional port when doing > > (open-file "/dev/tty") > > and > > (open-tcp-client "google.com:80") open-file doesn't exist and is meaningless. Open for reading? Open for writing? Open for whatever I have permissions for (which we know leads to security and other problems)? > It is conceivable, but non-trivial, to arrange for these procedures to return 2 values: an input port and an output port (some Scheme systems do this), but then it becomes bothersome to pass these two values around consistenty (unless of course you cons them together, in which case you basically have an ad-hoc bidirectional port!). No. The Right Solution IMNSHO is that (say) open-tcp-client returns a "connection" or a "socket" object. It's a historical accident (i.e. a design mistake) for Unix to conflate the types of file/port and connection, since a connection has two files *plus* other state. I.e. a connection is fundamentally a different kind of object than a port. Trying to conflate them is a design bug. (Some environments (including Java) don't support bi-directional ports (except in Java's case RandomAccessFile). This means that mapping Scheme ports to implementation ports becomes ugly.) -- --Per Bothner per@x http://per.bothner.com/ _______________________________________________ Scheme-reports mailing list Scheme-reports@x http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports