Hello everyone,

I'm working with Guile Scheme (with the LilyPond music engraver software, if someone knows this), and atm I have the problem that I would like to load an external scheme file in the current environment, like

; external.scm
(define x 3)

; main.scm
(define (make-test-function)
  (load "external.scm")
  (lambda () x))
(define test-function (make-test-function))
(display (test-function)) ; => 3
(display x) ; => should create an error because x should not be accessible

I tried but failed with this and found out it is because 'load' always uses the top-level environment. Is there another way to load a file in the current context? Like, in the way as if I just copy-and-pasted the contents of the file at this exact position? Or do you have any other suggestions?

Thanks in advance. :)

Lovis

Reply via email to