summaryrefslogtreecommitdiff
path: root/srfi/srfi-1.c
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2010-08-27 12:51:47 +0200
committerLudovic Courtès <ludo@gnu.org>2010-08-27 18:59:42 +0200
commitd7418e60a5b427a9d733929cf6ff468402dada1d (patch)
tree2ce8cc309d5ee2127bfeba486dba7d512831830b /srfi/srfi-1.c
parentea975f72cf4c041cf0b0ca3be3955f70868d8380 (diff)
downloadguile-d7418e60a5b427a9d733929cf6ff468402dada1d.tar.gz
SRFI-1: Rewrite `fifth', `sixth', etc. in Scheme.
This partially reverts commit 03731332d5dc8d650b947f5126427402c2b1d8bb (Tue May 3 2005). * module/srfi/srfi-1.scm (fifth, sixth, seventh, eighth, ninth, tenth): New procedures. * srfi/srfi-1.c (scm_srfi1_fifth, scm_srfi1_sixth, scm_srfi1_seventh, scm_srfi1_eighth, scm_srfi1_ninth, scm_srfi1_tenth): Rewrite as proxies to the corresponding Scheme procedure. * test-suite/tests/srfi-1.test ("eighth")["() -1"]: Change exception type to `exception:wrong-type-arg'. ("fifth")["() -1"]: Likewise. ("ninth")["() -1"]: Likewise. ("seventh")["() -1"]: Likewise. ("sixth")["() -1"]: Likewise. ("tenth")["() -1"]: Likewise.
Diffstat (limited to 'srfi/srfi-1.c')
-rw-r--r--srfi/srfi-1.c64
1 files changed, 24 insertions, 40 deletions
diff --git a/srfi/srfi-1.c b/srfi/srfi-1.c
index 44db0e3f6..dc19dd226 100644
--- a/srfi/srfi-1.c
+++ b/srfi/srfi-1.c
@@ -783,24 +783,19 @@ SCM_DEFINE (scm_srfi1_drop_while, "drop-while", 2, 0, 0,
#undef FUNC_NAME
-SCM_DEFINE (scm_srfi1_eighth, "eighth", 1, 0, 0,
- (SCM lst),
- "Return the eighth element of @var{lst}.")
-#define FUNC_NAME s_scm_srfi1_eighth
+SCM
+scm_srfi1_eighth (SCM lst)
{
- return scm_list_ref (lst, SCM_I_MAKINUM (7));
+ CACHE_VAR (eighth, "eighth");
+ return scm_call_1 (eighth, lst);
}
-#undef FUNC_NAME
-
-SCM_DEFINE (scm_srfi1_fifth, "fifth", 1, 0, 0,
- (SCM lst),
- "Return the fifth element of @var{lst}.")
-#define FUNC_NAME s_scm_srfi1_fifth
+SCM
+scm_srfi1_fifth (SCM lst)
{
- return scm_list_ref (lst, SCM_I_MAKINUM (4));
+ CACHE_VAR (fifth, "fifth");
+ return scm_call_1 (fifth, lst);
}
-#undef FUNC_NAME
SCM_DEFINE (scm_srfi1_filter_map, "filter-map", 2, 0, 1,
@@ -1398,14 +1393,12 @@ SCM_DEFINE (scm_srfi1_assoc, "assoc", 2, 1, 0,
#undef FUNC_NAME
-SCM_DEFINE (scm_srfi1_ninth, "ninth", 1, 0, 0,
- (SCM lst),
- "Return the ninth element of @var{lst}.")
-#define FUNC_NAME s_scm_srfi1_ninth
+SCM
+scm_srfi1_ninth (SCM lst)
{
- return scm_list_ref (lst, scm_from_int (8));
+ CACHE_VAR (ninth, "ninth");
+ return scm_call_1 (ninth, lst);
}
-#undef FUNC_NAME
SCM
scm_srfi1_not_pair_p (SCM obj)
@@ -1696,24 +1689,19 @@ SCM_DEFINE (scm_srfi1_remove_x, "remove!", 2, 0, 0,
#undef FUNC_NAME
-SCM_DEFINE (scm_srfi1_seventh, "seventh", 1, 0, 0,
- (SCM lst),
- "Return the seventh element of @var{lst}.")
-#define FUNC_NAME s_scm_srfi1_seventh
+SCM
+scm_srfi1_seventh (SCM lst)
{
- return scm_list_ref (lst, scm_from_int (6));
+ CACHE_VAR (seventh, "seventh");
+ return scm_call_1 (seventh, lst);
}
-#undef FUNC_NAME
-
-SCM_DEFINE (scm_srfi1_sixth, "sixth", 1, 0, 0,
- (SCM lst),
- "Return the sixth element of @var{lst}.")
-#define FUNC_NAME s_scm_srfi1_sixth
+SCM
+scm_srfi1_sixth (SCM lst)
{
- return scm_list_ref (lst, scm_from_int (5));
+ CACHE_VAR (sixth, "sixth");
+ return scm_call_1 (sixth, lst);
}
-#undef FUNC_NAME
SCM_DEFINE (scm_srfi1_span, "span", 2, 0, 0,
@@ -1931,16 +1919,12 @@ SCM_DEFINE (scm_srfi1_take_while_x, "take-while!", 2, 0, 0,
}
#undef FUNC_NAME
-
-SCM_DEFINE (scm_srfi1_tenth, "tenth", 1, 0, 0,
- (SCM lst),
- "Return the tenth element of @var{lst}.")
-#define FUNC_NAME s_scm_srfi1_tenth
+SCM
+scm_srfi1_tenth (SCM lst)
{
- return scm_list_ref (lst, scm_from_int (9));
+ CACHE_VAR (tenth, "tenth");
+ return scm_call_1 (tenth, lst);
}
-#undef FUNC_NAME
-
SCM
scm_srfi1_xcons (SCM d, SCM a)