summaryrefslogtreecommitdiff
path: root/libguile/memoize.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2010-02-18 12:28:37 +0100
committerAndy Wingo <wingo@pobox.com>2010-02-18 22:15:43 +0100
commitb5e9f3f97ebad910b932736f7b65bbf98083dd49 (patch)
tree6b16235e31bbddf0f24045f5b5712d96532db10f /libguile/memoize.c
parent21ec0bd9077b2fc109f1f425462eca37ef4a34e1 (diff)
downloadguile-b5e9f3f97ebad910b932736f7b65bbf98083dd49.tar.gz
memoize (begin foo) to foo
* libguile/memoize.c (memoize_sequence): Don't make a `begin' if there's only one form.
Diffstat (limited to 'libguile/memoize.c')
-rw-r--r--libguile/memoize.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libguile/memoize.c b/libguile/memoize.c
index 0e2571d5c..d209a86b8 100644
--- a/libguile/memoize.c
+++ b/libguile/memoize.c
@@ -378,7 +378,10 @@ memoize_sequence (const SCM forms, const SCM env)
{
ASSERT_SYNTAX (scm_ilength (forms) >= 1, s_bad_expression,
scm_cons (scm_sym_begin, forms));
- return MAKMEMO_BEGIN (memoize_exprs (forms, env));
+ if (scm_is_null (CDR (forms)))
+ return memoize (CAR (forms), env);
+ else
+ return MAKMEMO_BEGIN (memoize_exprs (forms, env));
}