List S

list.spad line 19 [edit on github]

List implements singly-linked lists that are addressable by indices; the index of the first element is 1. In addition to the operations provided by ListAggregate, this constructor provides some LISP-like functions such as cons and append.

#: % -> NonNegativeInteger

from Aggregate

<=: (%, %) -> Boolean if S has OrderedSet

from PartialOrder

<: (%, %) -> Boolean if S has OrderedSet

from PartialOrder

=: (%, %) -> Boolean if S has BasicType

from BasicType

>=: (%, %) -> Boolean if S has OrderedSet

from PartialOrder

>: (%, %) -> Boolean if S has OrderedSet

from PartialOrder

~=: (%, %) -> Boolean if S has BasicType

from BasicType

any?: (S -> Boolean, %) -> Boolean

from HomogeneousAggregate S

append: (%, %) -> %

append(u1, u2) appends the elements of list u1 onto the front of list u2. This new list and u2 will share some structure.

child?: (%, %) -> Boolean if S has BasicType

from RecursiveAggregate S

children: % -> List %

from RecursiveAggregate S

coerce: % -> OutputForm if S has CoercibleTo OutputForm

from CoercibleTo OutputForm

concat!: (%, %) -> %

from UnaryRecursiveAggregate S

concat!: (%, S) -> %

from UnaryRecursiveAggregate S

concat!: List % -> %

from UnaryRecursiveAggregate S

concat: (%, %) -> %

from LinearAggregate S

concat: (%, S) -> %

from LinearAggregate S

concat: (S, %) -> %

from LinearAggregate S

concat: List % -> %

from LinearAggregate S

cons: (S, %) -> %

cons(element, u) appends element onto the front of list u and returns the new list. This new list and the old one will share some structure.

construct: List S -> %

from Collection S

convert: % -> InputForm if S has ConvertibleTo InputForm

from ConvertibleTo InputForm

copy: % -> %

from Aggregate

copyInto!: (%, %, Integer) -> %

from LinearAggregate S

count: (S -> Boolean, %) -> NonNegativeInteger

from HomogeneousAggregate S

count: (S, %) -> NonNegativeInteger if S has BasicType

from HomogeneousAggregate S

cycleEntry: % -> %

from UnaryRecursiveAggregate S

cycleLength: % -> NonNegativeInteger

from UnaryRecursiveAggregate S

cycleSplit!: % -> %

from UnaryRecursiveAggregate S

cycleTail: % -> %

from UnaryRecursiveAggregate S

cyclic?: % -> Boolean

from RecursiveAggregate S

delete!: (%, Integer) -> %

from ExtensibleLinearAggregate S

delete!: (%, UniversalSegment Integer) -> %

from ExtensibleLinearAggregate S

delete: (%, Integer) -> %

from LinearAggregate S

delete: (%, UniversalSegment Integer) -> %

from LinearAggregate S

distance: (%, %) -> Integer

from RecursiveAggregate S

elt: (%, first) -> S

from UnaryRecursiveAggregate S

elt: (%, Integer) -> S

from Eltable(Integer, S)

elt: (%, Integer, S) -> S

from EltableAggregate(Integer, S)

elt: (%, last) -> S

from UnaryRecursiveAggregate S

elt: (%, rest) -> %

from UnaryRecursiveAggregate S

elt: (%, UniversalSegment Integer) -> %

from Eltable(UniversalSegment Integer, %)

elt: (%, value) -> S

from RecursiveAggregate S

empty?: % -> Boolean

from Aggregate

empty: () -> %

from Aggregate

entries: % -> List S

from IndexedAggregate(Integer, S)

entry?: (S, %) -> Boolean if S has BasicType

from IndexedAggregate(Integer, S)

eq?: (%, %) -> Boolean

from Aggregate

eval: (%, Equation S) -> % if S has SetCategory and S has Evalable S

from Evalable S

eval: (%, List Equation S) -> % if S has SetCategory and S has Evalable S

from Evalable S

eval: (%, List S, List S) -> % if S has SetCategory and S has Evalable S

from InnerEvalable(S, S)

eval: (%, S, S) -> % if S has SetCategory and S has Evalable S

from InnerEvalable(S, S)

every?: (S -> Boolean, %) -> Boolean

from HomogeneousAggregate S

explicitlyFinite?: % -> Boolean

from StreamAggregate S

fill!: (%, S) -> %

from IndexedAggregate(Integer, S)

find: (S -> Boolean, %) -> Union(S, failed)

from Collection S

first: % -> S

from IndexedAggregate(Integer, S)

first: (%, NonNegativeInteger) -> %

from LinearAggregate S

hash: % -> SingleInteger if S has Hashable

from Hashable

hashUpdate!: (HashState, %) -> HashState if S has Hashable

from Hashable

index?: (Integer, %) -> Boolean

from IndexedAggregate(Integer, S)

indices: % -> List Integer

from IndexedAggregate(Integer, S)

insert!: (%, %, Integer) -> %

from ExtensibleLinearAggregate S

insert!: (S, %, Integer) -> %

from ExtensibleLinearAggregate S

insert: (%, %, Integer) -> %

from LinearAggregate S

insert: (S, %, Integer) -> %

from LinearAggregate S

last: % -> S

from UnaryRecursiveAggregate S

last: (%, NonNegativeInteger) -> %

from UnaryRecursiveAggregate S

latex: % -> String if S has SetCategory

from SetCategory

leaf?: % -> Boolean

from RecursiveAggregate S

leaves: % -> List S

from RecursiveAggregate S

leftTrim: (%, S) -> % if S has BasicType

from LinearAggregate S

less?: (%, NonNegativeInteger) -> Boolean

from Aggregate

list: S -> %

from ListAggregate S

map!: (S -> S, %) -> %

from HomogeneousAggregate S

map: ((S, S) -> S, %, %) -> %

from LinearAggregate S

map: (S -> S, %) -> %

from HomogeneousAggregate S

max: % -> S if S has OrderedSet

from HomogeneousAggregate S

max: (%, %) -> % if S has OrderedSet

from OrderedSet

max: ((S, S) -> Boolean, %) -> S

from HomogeneousAggregate S

maxIndex: % -> Integer

from IndexedAggregate(Integer, S)

member?: (S, %) -> Boolean if S has BasicType

from HomogeneousAggregate S

members: % -> List S

from HomogeneousAggregate S

merge!: (%, %) -> % if S has OrderedSet

from ExtensibleLinearAggregate S

merge!: ((S, S) -> Boolean, %, %) -> %

from ExtensibleLinearAggregate S

merge: (%, %) -> % if S has OrderedSet

from LinearAggregate S

merge: ((S, S) -> Boolean, %, %) -> %

from LinearAggregate S

min: % -> S if S has OrderedSet

from HomogeneousAggregate S

min: (%, %) -> % if S has OrderedSet

from OrderedSet

minIndex: % -> Integer

from IndexedAggregate(Integer, S)

more?: (%, NonNegativeInteger) -> Boolean

from Aggregate

new: (NonNegativeInteger, S) -> %

from LinearAggregate S

node?: (%, %) -> Boolean if S has BasicType

from RecursiveAggregate S

nodes: % -> List %

from RecursiveAggregate S

OMwrite: % -> String if S has OpenMath

from OpenMath

OMwrite: (%, Boolean) -> String if S has OpenMath

from OpenMath

OMwrite: (OpenMathDevice, %) -> Void if S has OpenMath

from OpenMath

OMwrite: (OpenMathDevice, %, Boolean) -> Void if S has OpenMath

from OpenMath

parts: % -> List S

from HomogeneousAggregate S

position: (S -> Boolean, %) -> Integer

from LinearAggregate S

position: (S, %) -> Integer if S has BasicType

from LinearAggregate S

position: (S, %, Integer) -> Integer if S has BasicType

from LinearAggregate S

possiblyInfinite?: % -> Boolean

from StreamAggregate S

qelt: (%, Integer) -> S

from EltableAggregate(Integer, S)

qsetelt!: (%, Integer, S) -> S

from EltableAggregate(Integer, S)

qsetfirst!: (%, S) -> S

from UnaryRecursiveAggregate S

qsetrest!: (%, %) -> %

from UnaryRecursiveAggregate S

reduce: ((S, S) -> S, %) -> S

from Collection S

reduce: ((S, S) -> S, %, S) -> S

from Collection S

reduce: ((S, S) -> S, %, S, S) -> S if S has BasicType

from Collection S

remove!: (S -> Boolean, %) -> %

from ExtensibleLinearAggregate S

remove!: (S, %) -> % if S has BasicType

from ExtensibleLinearAggregate S

remove: (S -> Boolean, %) -> %

from Collection S

remove: (S, %) -> % if S has BasicType

from Collection S

removeDuplicates!: % -> % if S has BasicType

from ExtensibleLinearAggregate S

removeDuplicates: % -> % if S has BasicType

from Collection S

rest: % -> %

from UnaryRecursiveAggregate S

rest: (%, NonNegativeInteger) -> %

from UnaryRecursiveAggregate S

reverse!: % -> %

from LinearAggregate S

reverse: % -> %

from LinearAggregate S

rightTrim: (%, S) -> % if S has BasicType

from LinearAggregate S

sample: %

from Aggregate

second: % -> S

from UnaryRecursiveAggregate S

select!: (S -> Boolean, %) -> %

from ExtensibleLinearAggregate S

select: (S -> Boolean, %) -> %

from Collection S

setchildren!: (%, List %) -> %

from RecursiveAggregate S

setDifference: (%, %) -> % if S has BasicType

setDifference(u1, u2) returns a list of the elements of u1 that are not also in u2. The order of elements in the resulting list is unspecified.

setelt!: (%, first, S) -> S

from UnaryRecursiveAggregate S

setelt!: (%, Integer, S) -> S

from EltableAggregate(Integer, S)

setelt!: (%, last, S) -> S

from UnaryRecursiveAggregate S

setelt!: (%, rest, %) -> %

from UnaryRecursiveAggregate S

setelt!: (%, UniversalSegment Integer, S) -> S

from LinearAggregate S

setelt!: (%, value, S) -> S

from RecursiveAggregate S

setfirst!: (%, S) -> S

from UnaryRecursiveAggregate S

setIntersection: (%, %) -> % if S has BasicType

setIntersection(u1, u2) returns a list of the elements that lists u1 and u2 have in common. The order of elements in the resulting list is unspecified.

setlast!: (%, S) -> S

from UnaryRecursiveAggregate S

setrest!: (%, %) -> %

from UnaryRecursiveAggregate S

setUnion: (%, %) -> % if S has BasicType

setUnion(u1, u2) appends the two lists u1 and u2, then removes all duplicates. The order of elements in the resulting list is unspecified.

setvalue!: (%, S) -> S

from RecursiveAggregate S

size?: (%, NonNegativeInteger) -> Boolean

from Aggregate

smaller?: (%, %) -> Boolean if S has Comparable

from Comparable

sort!: % -> % if S has OrderedSet

from LinearAggregate S

sort!: ((S, S) -> Boolean, %) -> %

from LinearAggregate S

sort: % -> % if S has OrderedSet

from LinearAggregate S

sort: ((S, S) -> Boolean, %) -> %

from LinearAggregate S

sorted?: % -> Boolean if S has OrderedSet

from LinearAggregate S

sorted?: ((S, S) -> Boolean, %) -> Boolean

from LinearAggregate S

split!: (%, NonNegativeInteger) -> %

from UnaryRecursiveAggregate S

swap!: (%, Integer, Integer) -> Void

from IndexedAggregate(Integer, S)

tail: % -> %

from UnaryRecursiveAggregate S

tails: % -> List %

tails(u) returns list [rest(u, 0), rest(u, 1), …, rest(u, #u - 1)].

third: % -> S

from UnaryRecursiveAggregate S

trim: (%, S) -> % if S has BasicType

from LinearAggregate S

value: % -> S

from RecursiveAggregate S

Aggregate

BasicType if S has BasicType

CoercibleTo OutputForm if S has CoercibleTo OutputForm

Collection S

Comparable if S has Comparable

ConvertibleTo InputForm if S has ConvertibleTo InputForm

Eltable(Integer, S)

Eltable(UniversalSegment Integer, %)

EltableAggregate(Integer, S)

Evalable S if S has SetCategory and S has Evalable S

ExtensibleLinearAggregate S

finiteAggregate

FiniteLinearAggregate S

Hashable if S has Hashable

HomogeneousAggregate S

IndexedAggregate(Integer, S)

InnerEvalable(S, S) if S has SetCategory and S has Evalable S

LinearAggregate S

ListAggregate S

OpenMath if S has OpenMath

OrderedSet if S has OrderedSet

PartialOrder if S has OrderedSet

RecursiveAggregate S

SetCategory if S has SetCategory

shallowlyMutable

StreamAggregate S

UnaryRecursiveAggregate S