Functions for removing elements of a sequence by a predicate on data.
List of Import References :
See BOOL
See DENOTATION
See Nat
See Option
See Seq
SIGNATURE SeqFilter[data]
$Date: 2010-09-30 18:24:17 +0200 (Do, 30. Sep 2010) $ ($Revision: 616 $)
SORT data
IMPORT Seq[data] ONLY seq Seq[seq[data]] ONLY seq
p | s
: filter, select all elements of s
fulfilling
predicate p
.
FUN | : (data -> bool) ** seq[data] -> seq[data]
Long name for |
with and without currying
FUN filter : (data -> bool) ** seq[data] -> seq[data] FUN filter : (data -> bool) -> seq[data] -> seq[data] -- @code{partition (p, s) = (p | s, (\\x. ~(p(x))) | s)} FUN partition : (data -> bool) ** seq[data] -> seq[data] ** seq[data]
take (p, s1) = s2
:
take all components of s1
(from left to right) fulfilling
predicate p
just upto the first component, which does not
fulfill p
.
FUN take : (data -> bool) ** seq[data] -> seq[data]
drop (p, s1) = s2
:
drop all components of s1
(from left to right) fulfilling
predicate p
just upto the first component, which does not
fulfill p
.
FUN drop : (data -> bool) ** seq[data] -> seq[data]
split (p, s) = (take (p,s), drop (p, s))
:
split s
before the first component (operating from left to
right) which does not fulfill predicate p
.
FUN split : (data -> bool) ** seq[data] -> seq[data] ** seq[data]
components(~)(s) = s0 :: s1 :: ... :: sn
.
s = s0 ++ s1 ++ ...
, all elements of si
are related by
~
, and the last element of si
is not related by ~
with si+1
FUN components: (data ** data -> bool) -> seq[data] -> seq[seq[data]]
next node: SeqFold,
prev node: SeqConv,
up to node: Subsystem Sequences Proper