List of Import References :
See BOOL
See DENOTATION
See Nat
See Option
See Seq
SIGNATURE ISeq[data]
$Date: 2010-09-30 18:24:17 +0200 (Do, 30. Sep 2010) $ ($Revision: 616 $)
-- inifinite sequences
-- Parameter
SORT data
IMPORT Nat ONLY nat
Option[data] ONLY option
Seq[data] ONLY seq
-- the type itself
SORT iseq
-- constructing a seq from datas
FUN gen: data -> iseq -- gen(d) == <d, d, d, ... >
FUN repeat: seq -> iseq -- repeat(s) == s ++ s ++ s ++ ...
FUN :: : data ** iseq -> iseq -- prepend
FUN cons: data ** iseq -> iseq -- prepend (alternate name)
FUN +% : iseq ** data -> iseq -- append at end
-- constructing a seq from a function
FUN .. : nat -> (nat -> data) -> iseq
-- (n .. )(f) = <f(n), f(n+1), ... >
FUN iter : data ** (data -> data) -> iseq
-- iter(start, it) ==
-- <start, it(start), ... >
-- combining sequences
FUN ++ : seq ** iseq -> iseq
FUN ++ : iseq ** iseq -> iseq -- concat
Concatenate: +/+(d)(s1, s2) concatenate sequences, put
d inbetween, if both are nonempty.
FUN +/+ : data -> seq ** iseq -> iseq FUN +/+ : seq -> seq ** iseq -> iseq
Concatenate: +%+(d)(s1, s2) concatenate sequences, put
d inbetween unconditionally.
FUN +%+ : data -> seq ** iseq -> iseq
FUN +%+ : seq -> seq ** iseq -> iseq
-- working on a sequence
FUN take : nat ** iseq -> seq
-- take (k, s)
-- take first k components of s
-- informally:
-- take (k, <e_0, ..., e_k-1, ...>) = <e_0, ..., e_k-1>
FUN drop : nat ** iseq -> iseq
-- drop (k, s)
-- drop first k components of s
-- informally:
-- drop (k, <e_0, ..., e_k-1, e_k, ... >)
-- = <e_k, ..., e_n>
FUN split : nat ** iseq -> seq ** iseq
-- split (n, s) = (take (n,s), drop (n,s))
-- split s after n elements
FUN rt : iseq -> iseq
-- rt(<e_0, ..., e_n>) = <e_1, ..., e_n>
-- accessing datas in a sequence
FUN ft : iseq -> data
-- information about a sequence
FUN find? : (data -> bool) ** iseq -> data
-- find? (p, s)
-- return some component of s fulfilling p
-- for compatibility reasons to finite sequences
-- though find?(p,s) can never return nil
FUN find? : (data -> bool) ** iseq -> option[data]
-- not for user purpose (oder doch?)
FUN :: : (() -> data) ** (() -> iseq) -> iseq
next node: ISeqConv,
prev node: Subsystem Infinite Sequences,
up to node: Subsystem Infinite Sequences