Browse thread
[Caml-list] Strings as arrays or lists...
-
oliver@f...
-
brogoff@s...
-
Xavier Leroy
- Alain.Frisch@e...
-
Eric C. Cooper
- Fabrice Le Fessant
-
Xavier Leroy
-
brogoff@s...
[
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: | Fabrice Le Fessant <fabrice@l...> |
| Subject: | Re: [Caml-list] Strings as arrays or lists... |
> I recently wrote some code that made use of char lists, and explode > and implode came in handy. I needed to marshal a recursive datatype > into a packet to be sent over a communication channel according to a > protocol that imposed a specific format, including a length byte at > the beginning and a checksum byte at the end. > > I could have made one pass over the data to compute the packet length, > then a second pass marshaling it into a buffer. But it was very > natural to just build up a list of bytes in a single traversal of the > datatype. Then the length and checksum could easily be added to the > beginning and the end, and the result written out. I had exactly the same code to write one year ago, and I simply built the packet inside a buffer, with a 0 length-field, changed it to a string, and filled the length-field just before sending, by changing the chars in place in the string. It only allocates the buffer once, and then the final string at the end, I cannot believe that using a list of chars can be more efficient, but sometimes strange things happen... - Fabrice ------------------- 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