guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: summary: lilypond, lambda, and local-eval


From: Hans Aberg
Subject: Re: summary: lilypond, lambda, and local-eval
Date: Fri, 16 Dec 2011 13:13:38 +0100

On 16 Dec 2011, at 11:33, Mark H Weaver wrote:

> Here's what I currently see:
> 
> scheme@(guile-user)> (local-eval #'t (primitive-eval '(let ((t 42)) (or #f 
> (the-environment)))))
> ERROR: In procedure memoize-variable-access!:
> ERROR: Unbound variable: t
> 
> This is the correct behavior, no?

This is what I get when I play around with the following variation of David's 
code in Guile 2.0.3:
(define (xxx)
  (let* ((x 2))
    (set! x (+ x 3))
    (interaction-environment)))

(eval '(begin (set! x (+ x 5)) x) (xxx))

My guess (correct?) is that one wants some variation of 
(interaction-environment) that can cause x in the eval expression to bind to 
the environment returned by (xxx).

Might eval be changed to accommodate for that (without introducing the name 
local-eval)?

Hans





reply via email to

[Prev in Thread] Current Thread [Next in Thread]