This package exports sequence processing functions. License: AGPL3 Copyright Pascal J. Bourguignon 2004 - 2015 This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>
(concatenate-sequences result-type sequence-of-sequences &key adjustable fill-pointer) |
function |
RESULT-TYPE: Indicates the type of resulting sequence. If LIST, then ADJUSTABLE and FILL-POINTER are ignored. SEQUENCE-OF-SEQUENCES: EACH element may be either a string-designator, or a list containing a string-designator, and a start and end position denoting a substring. ADJUSTABLE: Whether the result must be adjustable. FILL-POINTER: The result fill pointer. RETURN: A vector containing all the elements of the vectors in sequence-of-vectors, in order.
(deletef x item &rest keys) |
macro |
Delete the item from the sequence in PLACE.
(duplicates sequence &key test key) |
function |
RETURN: A sequence of items appearing in SEQUENCE in duplicate. There are no duplicates in the result, a single representant is included.
(group-by sequence n) |
generic-function |
Returns a list of subsequences of SEQUENCE of length N, whose concatenation is equal to SEQUENCE.
(hashed-delete-duplicates sequence &key test test-not start end key from-end) |
function |
Like DELETE-DUPLICATES but implemented using a HASH-TABLE.
(hashed-remove-duplicates sequence &key test test-not start end key from-end) |
function |
Like REMOVE-DUPLICATES but implemented using a HASH-TABLE.
(hashed-set-remove-duplicates sequence &key test key) |
function |
DO: Remove duplicates from the SEQUENCE, using a hash-table. RETURN: A list of unique elements from the SEQUENCE. SEQUENCE: A sequence. TEST: A comparison function. Default: EQL. KEY: A key function. Default: IDENTITY.
MAPCONCAT
(parse-sequence-type type) |
function |
Parses the type which is expected to be a sequence subtype RETURN: the base type (list or vector), the element-type and the length (or nil).
(prefixp prefix sequence &key start end test) |
generic-function |
PREFIX: A sequence designator. STRING: A sequence designator. START: The start of the subsequence of SEQUENCE to consider. Default: 0. END: The end of the subsequence of SEQUENCE to consider. Default: NIL. TEST: A function to compare the elements of the SEQUENCE. RETURN: Whether PREFIX is a prefix of the (subseq SEQUENCE START END).
(replace-subseq insert sequence start &optional end) |
generic-function |
DO: Destructively (if possible) replace the (subseq sequence start end) with the elements from INSERT. If START and END don't specify a strict subseq of SEQUENCE then an error is signaled. INSERT: A sequence. SEQUENCE: A sequence. If it is a list or an adjustable vector, or if the subseq is of same length as INSERT then it will be destructively modified and returned. Otherwise a fresh adjustable vector will be returned. START: Bounding index designator of SEQUENCE. END: Bounding index designator of SEQUENCE. The default for end is NIL, which means (LENGTH SEQUENCE). RETURN: Either the modified SEQUENCE, or a fresh sequence of the same type with the specified subseq replaced by elements from INSERT.
(suffixp suffix string &key start end test) |
generic-function |
SUFFIX: A sequence designator. STRING: A sequence designator. START: The start of the subsequence of SEQUENCE to consider. Default: 0. END: The end of the subsequence of SEQUENCE to consider. Default: NIL. TEST: A function to compare the elements of the SEQUENCE. RETURN: Whether SUFFIX is a suffix of the (subseq SEQUENCE START END).