Richard Shann <richard.sh...@virgin.net> writes: > Thanks for this: the only problem might be that it is the top-level > definitions in Denemo's initialization script that I want to list. I > haven't created a module for it (I wouldn't know how! But as it is very > much an end user, I suppose there is no need). > I tried '(current-module) where you have '(the denemo module) with a > (no code for module (current-module) error message. > Any further thoughts? > Thanks again,
(current-module) should replace the whole (resolve-interface ...) form, i.e.: (module-for-each (lambda (name var) (format #t "variable `~A', value `~s'~%" name (variable-ref var))) (current-module)) Within Denemo, you could arrange things such that the initialization script was loaded in the context of a specially created module; then an approach like the above should be fine. Alternatively, assuming that it is safe to do so - i.e. that there are no possible side-effects from reading - you could just read and process the script. Something like: (with-input-from-file FILENAME (lambda () (let loop ((x (read)) (defs '())) (if (eof-object? x) defs (loop (read) (if (and (list? x) (>= (length x) 3) (eq? (car x) 'define) (pair? (cadr x))) (cons (caadr x) defs) defs)))))) (completely untested, of course!) Neil