From 73bcd69a66e50e08bace63cc2392803fd991f6f0 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Thu, 27 Feb 2014 07:52:02 -0800 Subject: * lib.c (copy): New function. * lib.h (copy): Declared. * eval.c (eval_init): Registered copy function as intrinsic. * txr.1: Added missing documentation for length. Documented copy. --- lib.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'lib.c') diff --git a/lib.c b/lib.c index 9aa3af95..da3ae5a3 100644 --- a/lib.c +++ b/lib.c @@ -4879,6 +4879,24 @@ val set_diff(val list1, val list2, val testfun, val keyfun) return make_like(out, list_orig); } +val copy(val seq) +{ + switch (type(seq)) { + case NIL: + return nil; + case CONS: + case LCONS: + return copy_list(seq); + case LIT: + case STR: + return copy_str(seq); + case VEC: + return copy_vec(seq); + default: + type_mismatch(lit("copy: ~s is not a sequence"), seq, nao); + } +} + val length(val seq) { switch (type(seq)) { -- cgit v1.2.3