Browse thread
[Caml-list] Reading a large text file
[
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: | 2004-05-01 (18:25) |
From: | Charles Forsyth <forsyth@t...> |
Subject: | Re: [Caml-list] Reading a large text file |
>>The short answer is no, because in OCaml (unlike in LISP) lists are >>immutable. In LISP terminology, there's no way to 'set cdr' on an >>OCaml 'cons structure'. The disadvantage to this is that you can't do >>certain destructive operations on lists, like you can so easily in >>LISP. The advantage is that you can't do certain destructive >>operations on lists! In other words, your code is more likely to be >>bug free. the concurrent programming language Limbo does much the same, and has a similar penalty for appending to a list. nevertheless, it has advantages as you say, and i thought i'd add that the property turns out to be quite helpful in concurrent programs, because you can pass another process the current value of a list (for instance by sending it on a channel) and be sure it always sees the `right' value. i've found it particularly useful for lock-free concurrent access to caches implemented by hash tables (array of list of T), when the cache acts as a hint (as for instance in DNS implementation). as you say, you can always program a mutable list when you need one. ------------------- 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