diff --git a/libguile/generalized-arrays.c b/libguile/generalized-arrays.c index ff05151b3..a04b5faa1 100644 --- a/libguile/generalized-arrays.c +++ b/libguile/generalized-arrays.c @@ -250,8 +250,14 @@ array_to_list (scm_t_array_handle *h, size_t dim, unsigned long pos) SCM_DEFINE (scm_array_to_list, "array->list", 1, 0, 0, (SCM array), - "FIXME description a list consisting of all the elements, in order, of\n" - "@var{array}.") + "Return a list representation of @var{array}.\n\n" + "It is easiest to specify the behavior of this function by\n" + "example:\n" + "@example\n" + "(array->list #0(a)) @result{} 1\n" + "(array->list #1(a b)) @result{} (a b)\n" + "(array->list #2((aa ab) (ba bb)) @result{} ((aa ab) (ba bb))\n" + "@end example\n") #define FUNC_NAME s_scm_array_to_list { scm_t_array_handle h; diff --git a/test-suite/tests/arrays.test b/test-suite/tests/arrays.test index 2ce961b14..b762f2014 100644 --- a/test-suite/tests/arrays.test +++ b/test-suite/tests/arrays.test @@ -206,6 +206,17 @@ (pass-if "#s16(...)" (array-equal? #s16(1 2 3) #s16(1 2 3)))) +;;; +;;; array->list +;;; + +(with-test-prefix "array->list" + (pass-if (equal? (array->list #s16(1 2 3)) '(1 2 3))) + (pass-if (equal? (array->list #(1 2 3)) '(1 2 3))) + (pass-if (equal? (array->list #2((1 2) (3 4) (5 6))) '((1 2) (3 4) (5 6)))) + (pass-if (equal? (array->list #()) '()))) + + ;;; ;;; array-fill! ;;;