Browse thread
[Caml-list] [ANN] The Missing Library
-
John Goerzen
-
Kenneth Knowles
- Alexander V. Voinov
-
John Goerzen
-
Maxence Guesdon
-
John Goerzen
- Maxence Guesdon
-
John Goerzen
-
Alain.Frisch@e...
-
John Goerzen
-
Alain.Frisch@e...
-
Nicolas Cannasse
-
Yamagata Yoriyuki
- Gerd Stolpmann
-
Nicolas Cannasse
-
Yamagata Yoriyuki
- Jacques GARRIGUE
- Nicolas Cannasse
-
Yamagata Yoriyuki
-
Yamagata Yoriyuki
-
Nicolas Cannasse
- oliver@f...
-
Alain.Frisch@e...
-
John Goerzen
- Henri DF
- Shawn Wagner
- james woodyatt
-
Alain.Frisch@e...
- Basile STARYNKEVITCH
-
John Goerzen
- Kenneth Knowles
- Florian Hars
-
Maxence Guesdon
- Eric C. Cooper
-
Kenneth Knowles
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Gerd Stolpmann <info@g...> |
| Subject: | Re: [Caml-list] Re: Common IO structure |
On Die, 2004-04-27 at 18:00, Yamagata Yoriyuki wrote: > From: Gerd Stolpmann <info@gerd-stolpmann.de> > Subject: Re: [Caml-list] Re: Common IO structure > Date: Mon, 26 Apr 2004 22:56:59 +0200 > > > Of course, sharing the same method name is possible, in ocamlnet we have > > e.g. output_char where camomile has put_char. So the question is whether > > this is worth the effort. > > Camomile uses "put", not "put_char", because channels are polymorphic. Oh sorry, I just remembered it wrong. > If ocamlnet channels have input/output for strings, but have > output_char for one Unicode character, then I would say output_char is > different from Camomile "put", because Camomile "put" is supposed to > output one atom (for character channles, atom is char, not a Unicode > character.) Yes, in principle, they are different. > Since I am convinced by Gerd's argument for close_in/close_out, I > updates my proposal as > (for input) > ['a] object > get : unit -> 'a > close_in : unit > end > (raise End_of_file when there is no more element to read.) > > (for output) > ['a] object > put : 'a -> unit > flush : unit -> unit > close_out : unit -> unit > end > > for a character channel, > (for input) > object > input : string -> int -> int -> int > close_in : unit > end > > ([c#input s pos len] fills s from pos with less than [len] characters, > and returns the number of characters really filled.) > > (for output) > object > output : string -> int -> int -> unit > flush : unit -> unit > close_out : unit -> unit > end > ([c#output s pos len] outputs [len] characters from the position > [pos]) > > But the distinction of put/input, get/output may be confusing. Hmmm. I am sure we are very close to a solution here. As another name for get/put we also have receive/send. The Event module of the stdlib uses them. Gerd -- ------------------------------------------------------------ Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany gerd@gerd-stolpmann.de http://www.gerd-stolpmann.de ------------------------------------------------------------ ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners