summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libguile/generalized-arrays.c10
-rw-r--r--test-suite/tests/arrays.test11
2 files changed, 19 insertions, 2 deletions
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
@@ -207,6 +207,17 @@
(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!
;;;