Common Lisp Package: IT.UNIMIB.DISCO.MA.CL.EXT.SEQUENCES.LAZY

README:

FUNCTION

Public

DISTINCT (SEQ &REST KEYS &KEY (TEST #'EQL) (KEY #'IDENTITY) ((DISTINCTS-TABLE DST) (MAKE-HASH-TABLE TEST TEST)) &ALLOW-OTHER-KEYS)

Returns a generalized sequence of distinct elements. If SEQ is a SEQUENCE then REMOVE-DUPLICATES is called. If it is a LAZY-STREAM then a new LAZY-STREAM is returned, with repeated elements removed. Key arguments are only TEST and KEY.

DROP (N SEQ)

Drops the first N elements of the sequence SEQ. The result is a fresh sequence of the last (- (length SEQ) N) elements. SEQ can be a SEQUENCE or a LAZY-STREAM. The type of the result is the same as the type of SEQ if this is a SEQUENCE, otherwise it is a LAZY-STREAM or NIL (if dropping more items than the - finite - length of the LAZY-STREAM).

DROP-WHILE (P SEQ)

Drops the first elements of the sequence SEQ that satisfy the predicate P.

SPLIT-AT (N SEQ)

Returns two subsequences of SEQ split at the N-th element.

TAKE (N SEQ)

Takes the first N elements of the sequence SEQ. The result is a fresh sequence of the first N elements. SEQ can be a SEQUENCE or a LAZY-STREAM. The type of the result is the same as the type of SEQ if this is a SEQUENCE, otherwise it is a LIST.

TAKE-WHILE (P SEQ)

Takes the first elements of the sequence SEQ that satisfy the predicate P. SEQ can be a SEQUENCE or a LAZY-STREAM. The type of the result is the same as the type of SEQ if this is a SEQUENCE, otherwise it is a LIST.

Undocumented

SEPARATE (P SEQ)

SPAN (P SEQ)

TAILS (SEQ)

Private

Undocumented

TAKE-NTH (N SEQ)

ZIP (CONS-FUN SEQ1 SEQ2 &REST SEQS)