diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | lib.c | 5 | ||||
-rw-r--r-- | txr.1 | 28 |
3 files changed, 28 insertions, 12 deletions
@@ -1,3 +1,10 @@ +2014-12-18 Kaz Kylheku <kaz@kylheku.com> + + * lib.c (copy): Support copying random state objects + vi make_random_state. + + * txr.1: Updated. + 2014-12-17 Kaz Kylheku <kaz@kylheku.com> * rand.c (rand32): Bugfix: if the seed object is a random @@ -6093,9 +6093,12 @@ val copy(val seq) case COBJ: if (seq->co.cls == hash_s) return copy_hash(seq); + if (seq->co.cls == random_state_s) + return make_random_state(seq); /* fallthrough */ default: - type_mismatch(lit("copy: ~s is not a sequence"), seq, nao); + type_mismatch(lit("copy: cannot copy object of type ~s"), + typeof(seq), nao); } } @@ -17141,41 +17141,47 @@ is zero, otherwise .coNP Function @ copy .synb -.mets (copy << sequence ) +.mets (copy << object ) .syne .desc The .code copy -function duplicates a sequence. If -.meta sequence +function duplicates objects of various supported types: sequences, hashes and random states. If +.meta object is .codn nil , it returns .codn nil . If -.meta sequence +.meta object is a list, it returns .cblk -.meti (copy-list << sequence ). +.meti (copy-list << object ). .cble If -.meta sequence +.meta object is a string, it returns .cblk -.meti (copy-str << sequence ). +.meti (copy-str << object ). .cble If -.meta sequence +.meta object is a vector, it returns .cblk -.meti (copy-vec << sequence ). +.meti (copy-vec << object ). .cble If -.meta sequence +.meta object is a hash, it returns .cblk -.meti (copy-hash << sequence ). +.meti (copy-hash << object ) +.cble +Lastly, if +.meta object +is a random state, it returns +.cblk +.meti (make-random-state << object ). .cble Except in the case when |