mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-24 12:20:20 +02:00
Add capture-env to evaluator
* libguile/eval.c (eval): * libguile/memoize.c (memoized_tags, unmemoize): * libguile/memoize.h (SCM_M_CAPTURE_ENV): * module/ice-9/eval.scm (primitive-eval): Add capture-env memoized expression type.
This commit is contained in:
parent
cfdc8416a2
commit
99fb07e19b
4 changed files with 40 additions and 1 deletions
|
@ -165,6 +165,7 @@ static const char *const memoized_tags[] =
|
|||
"seq",
|
||||
"if",
|
||||
"lambda",
|
||||
"capture-env",
|
||||
"let",
|
||||
"quote",
|
||||
"define",
|
||||
|
@ -625,6 +626,10 @@ unmemoize (const SCM expr)
|
|||
tail));
|
||||
}
|
||||
}
|
||||
case SCM_M_CAPTURE_ENV:
|
||||
return scm_list_3 (scm_from_latin1_symbol ("capture-env"),
|
||||
CAR (args),
|
||||
unmemoize (CDR (args)));
|
||||
case SCM_M_LET:
|
||||
return scm_list_3 (scm_sym_let,
|
||||
unmemoize_bindings (CAR (args)),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue