diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2014-02-27 07:52:02 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2014-02-27 07:52:02 -0800 |
commit | 73bcd69a66e50e08bace63cc2392803fd991f6f0 (patch) | |
tree | 29382e5ac47bddfe93d2b49e84d90c5d0fc27965 /lib.c | |
parent | 66858a6c861796b58b51cdc1f0a125621ec1b376 (diff) | |
download | txr-73bcd69a66e50e08bace63cc2392803fd991f6f0.tar.gz txr-73bcd69a66e50e08bace63cc2392803fd991f6f0.tar.bz2 txr-73bcd69a66e50e08bace63cc2392803fd991f6f0.zip |
* 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.
Diffstat (limited to 'lib.c')
-rw-r--r-- | lib.c | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -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)) { |