# 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.