diff options
author | Andy Wingo <wingo@pobox.com> | 2011-05-05 12:59:07 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2011-05-05 12:59:07 +0200 |
commit | 9e775af3bf0db457eceb5a9a1f4a87968d011492 (patch) | |
tree | 6a5545f47d4ecec48055592c1bf074ecd2db805c /libguile/srfi-1.h | |
parent | 89f9dd7065971d9d9047b42f044c06cc943f5efc (diff) | |
download | guile-9e775af3bf0db457eceb5a9a1f4a87968d011492.tar.gz |
srfi-1 `member' in scheme, inlines to memq / memv in some cases
* libguile/srfi-1.c:
* libguile/srfi-1.h (scm_srfi1_member): Move implementation to Scheme.
* module/srfi/srfi-1.scm (member): Implement here, with the inlining
cases for eq? and eqv?. Speeds up a compiled bootstrap of
psyntax.scm, because lset-adjoin inlines to the memq case.
(lset<=): Reindent.
(lset-adjoin, lset-union): If the comparator is eq? or eqv?, just pass
it through to `member', so we inline to memq / memv. Use something
closer to the reference implementations.
Diffstat (limited to 'libguile/srfi-1.h')
-rw-r--r-- | libguile/srfi-1.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/libguile/srfi-1.h b/libguile/srfi-1.h index 593d9bb02..85aa65d0c 100644 --- a/libguile/srfi-1.h +++ b/libguile/srfi-1.h @@ -1,6 +1,6 @@ /* srfi-1.h --- SRFI-1 procedures for Guile * - * Copyright (C) 2002, 2003, 2005, 2006, 2010 Free Software Foundation, Inc. + * Copyright (C) 2002, 2003, 2005, 2006, 2010, 2011 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -41,7 +41,6 @@ SCM_INTERNAL SCM scm_srfi1_lset_difference_x (SCM equal, SCM lst, SCM rest); SCM_INTERNAL SCM scm_srfi1_list_copy (SCM lst); SCM_INTERNAL SCM scm_srfi1_map (SCM proc, SCM arg1, SCM args); SCM_INTERNAL SCM scm_srfi1_for_each (SCM proc, SCM arg1, SCM args); -SCM_INTERNAL SCM scm_srfi1_member (SCM obj, SCM ls, SCM pred); SCM_INTERNAL SCM scm_srfi1_assoc (SCM key, SCM alist, SCM pred); SCM_INTERNAL SCM scm_srfi1_partition (SCM pred, SCM list); SCM_INTERNAL SCM scm_srfi1_partition_x (SCM pred, SCM list); |