X-Git-Url: http://git.hcoop.net/bpt/guile.git/blobdiff_plain/82892beda5c053715bc3ec7063af4a129f52c5f9..3d527b275536d99effe4e25e6f6edabf38c89581:/libguile/gh_list.c diff --git a/libguile/gh_list.c b/libguile/gh_list.c index 6442c57c7..1330fc6ef 100644 --- a/libguile/gh_list.c +++ b/libguile/gh_list.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995,1996,1997 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1997, 2000, 2001 Free Software Foundation, Inc. * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -42,19 +42,56 @@ /* list manipulation */ -#include - -#include +#include "libguile/gh.h" /* returns the length of a list */ unsigned long -gh_list_length (SCM l) +gh_length (SCM l) { - return gh_scm2ulong (scm_list_length (l)); + return gh_scm2ulong (scm_length (l)); } /* list operations */ +/* gh_list(SCM elt, ...) is implemented as a macro in gh.h. */ + +/* gh_append() takes a args, which is a list of lists, and appends + them all together into a single list, which is returned. This is + equivalent to the Scheme procedure (append list1 list2 ...) */ +SCM +gh_append (SCM args) +{ + return scm_append (args); +} + +SCM +gh_append2 (SCM l1, SCM l2) +{ + return scm_append (scm_list_2 (l1, l2)); +} + +SCM +gh_append3(SCM l1, SCM l2, SCM l3) +{ + return scm_append (scm_list_3 (l1, l2, l3)); +} + +SCM +gh_append4 (SCM l1, SCM l2, SCM l3, SCM l4) +{ + return scm_append (scm_list_4 (l1, l2, l3, l4)); +} + +/* gh_reverse() is defined as a macro in gh.h */ +/* gh_list_tail() is defined as a macro in gh.h */ +/* gh_list_ref() is defined as a macro in gh.h */ +/* gh_memq() is defined as a macro in gh.h */ +/* gh_memv() is defined as a macro in gh.h */ +/* gh_member() is defined as a macro in gh.h */ +/* gh_assq() is defined as a macro in gh.h */ +/* gh_assv() is defined as a macro in gh.h */ +/* gh_assoc() is defined as a macro in gh.h */ + /* analogous to the Scheme cons operator */ SCM gh_cons (SCM x, SCM y) @@ -62,8 +99,6 @@ gh_cons (SCM x, SCM y) return scm_cons (x, y); } -/* gh_list(SCM elt, ...) is implemented as a macro in gh.h. */ - /* analogous to the Scheme car operator */ SCM gh_car (SCM x) @@ -140,3 +175,23 @@ gh_cdddr (SCM x) { return SCM_CDDDR (x); } + +/* equivalent to (set-car! pair value) */ +SCM +gh_set_car_x(SCM pair, SCM value) +{ + return scm_set_car_x(pair, value); +} + +/* equivalent to (set-cdr! pair value) */ +SCM +gh_set_cdr_x(SCM pair, SCM value) +{ + return scm_set_cdr_x(pair, value); +} + +/* + Local Variables: + c-file-style: "gnu" + End: +*/