Browse thread
How important are circular lists/recursive objects?
[
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: | Jon Harrop <jon@f...> |
| Subject: | Re: [Caml-list] How important are circular lists/recursive objects? |
On Tuesday 03 April 2007 08:00, Andrej Bauer wrote:
> Brian Hurt wrote:
> > Does anyone actually use this construct, and if so, for what?
>
> When I teach my students "theory" of programming languages, we write
> interpreters for mini languages. The recursive data structures are used
> to create closures of recursive functions, environments that contain
> mutually recursive values, closures of objects, etc. Life would be very
> hard without this feature.
There is a nice example here:
http://www.ffconsultancy.com/ocaml/benefits/interpreter.html
Specifically, in the "eval" function:
| ELetRec(var, arg, body, rest) ->
let rec vars = (var, VClosure(arg, vars, body)) :: vars in
eval vars rest
--
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
OCaml for Scientists
http://www.ffconsultancy.com/products/ocaml_for_scientists