The Sequence interface

(No version information available, might only be in Git)

Introduction

A Sequence describes the behaviour of values arranged in a single, linear dimension. Some languages refer to this as a "List". It’s similar to an array that uses incremental integer keys, with the exception of a few characteristics:

  • Values will always be indexed as [0, 1, 2, …, size - 1].
  • Only allowed to access values by index in the range [0, size - 1].

Use cases:

Interface synopsis

Ds\Sequence implements Ds\Collection {
/* Methods */
abstract public allocate ( int $capacity ) : void
abstract public apply ( callable $callback ) : void
abstract public capacity ( void ) : int
abstract public contains ([ mixed $...values ] ) : bool
abstract public filter ([ callable $callback ] ) : Ds\Sequence
abstract public find ( mixed $value ) : mixed
abstract public first ( void ) : mixed
abstract public get ( int $index ) : mixed
abstract public insert ( int $index [, mixed $...values ] ) : void
abstract public join ([ string $glue ] ) : string
abstract public last ( void ) : mixed
abstract public map ( callable $callback ) : Ds\Sequence
abstract public merge ( mixed $values ) : Ds\Sequence
abstract public pop ( void ) : mixed
abstract public push ([ mixed $...values ] ) : void
abstract public reduce ( callable $callback [, mixed $initial ] ) : mixed
abstract public remove ( int $index ) : mixed
abstract public reverse ( void ) : void
abstract public reversed ( void ) : Ds\Sequence
abstract public rotate ( int $rotations ) : void
abstract public set ( int $index , mixed $value ) : void
abstract public shift ( void ) : mixed
abstract public slice ( int $index [, int $length ] ) : Ds\Sequence
abstract public sort ([ callable $comparator ] ) : void
abstract public sorted ([ callable $comparator ] ) : Ds\Sequence
abstract public sum ( void ) : number
abstract public unshift ([ mixed $values ] ) : void
}

Table of Contents