IN: sequences USING: help arrays ; HELP: copy { $values { "src" "a sequence" } { "n" "an index in " { $snippet "dest" } } { "dest" "a mutable sequence" } } { $description "Copies all elements of " { $snippet "src" } " to " { $snippet "dest" } ", with destination indices starting from " { $snippet "n" } ". Grows " { $snippet "to" } " first if necessary." } { $errors "An error is thrown if " { $snippet "to" } " is not resizable, and not large enough to hold the copied elements." } ; HELP: nappend { $values { "src" "a sequence" } { "dest" "a resizable mutable sequence" } } { $description "Appends " { $snippet "src" } " to the end of " { $snippet "dest" } "." } { $side-effects "dest" } { $errors "Throws an error if " { $snippet "src" } " contains elements not permitted in " { $snippet "dest" } "." } ; HELP: append { $values { "seq1" "a sequence" } { "seq2" "a sequence" } { "newseq" "a sequence" } } { $description "Outputs a new sequence of the same type as " { $snippet "seq1" } " consisting of the elements of " { $snippet "seq1" } " followed by " { $snippet "seq2" } "." } { $errors "Throws an error if " { $snippet "seq2" } " contains elements not permitted in sequences of the same class as " { $snippet "seq1" } "." } ; HELP: 3append { $values { "seq1" "a sequence" } { "seq2" "a sequence" } { "seq3" "a sequence" } { "newseq" "a sequence" } } { $description "Outputs a new sequence consisting of the elements of " { $snippet "seq1" } ", " { $snippet "seq2" } " and " { $snippet "seq3" } " in turn." } { $errors "Throws an error if " { $snippet "seq2" } " or " { $snippet "seq3" } " contain elements not permitted in sequences of the same class as " { $snippet "seq1" } "." } ; HELP: subseq { $values { "m" "a non-negative integer" } { "n" "a non-negative integer" } { "seq" "a sequence" } { "subseq" "a new sequence" } } { $description "Outputs a new sequence consisting of all elements starting from and including " { $snippet "m" } ", and up to but not including " { $snippet "n" } "." } { $errors "Throws an error if " { $snippet "m" } " or " { $snippet "n" } " is out of bounds." } ; HELP: clone-like { $values { "seq" "a sequence" } { "exemplar" "a sequence" } { "newseq" "a new sequence" } } { $description "Outputs a newly-allocated sequence with the same elements as " { $snippet "seq" } " but of the same type as " { $snippet "exemplar" } "." } { $notes "Unlike " { $link like } ", this word always creates a new sequence which never shares storage with the original." } ;