Cons[A: A]
Список с головой и хвостом, где хвост может быть пустым.
class val Cons[A: A] is ReadSeq[val->A] box
Реализует
- ReadSeq[val->A] box
Конструкторы
create
new val create( a: val->A, t: (Cons[A] val | Nil[A] val)) : Cons[A] val^
Параметры
Возвращает
- Cons[A] val^
Публичные функции
size
Возвращает размер списка.
fun box size() : USize val
Возвращает
- USize val
apply
Возвращает i-й элемент списка. Возвращает ошибку, если индекс вне границ.
fun box apply( i: USize val) : val->A ?
Параметры
- i: USize val
Возвращает
- val->A ?
values
Возвращает итератор по элементам списка.
fun box values() : Iterator[val->A] ref^
Возвращает
- Iterator[val->A] ref^
is_empty
Возвращает значение Bool, указывающее, пустой ли список.
fun box is_empty() : Bool val
Возвращает
- Bool val
is_non_empty
Возвращает значение Bool, указывающее, непустой ли список.
fun box is_non_empty() : Bool val
Возвращает
- Bool val
head
Возвращает голову списка.
fun box head() : val->A
Возвращает
- val->A
tail
Возвращает хвост списка.
fun box tail() : (Cons[A] val | Nil[A] val)
Возвращает
reverse
Создает новый список, инвертируя элементы в списке.
fun val reverse() : (Cons[A] val | Nil[A] val)
Возвращает
prepend
Создает новый список с элементом, добавленным в начало этого списка.
fun val prepend( a: val->A!) : Cons[A] val
Параметры
- a: val->A!
Возвращает
- Cons[A] val
concat
Создает новый список, который является конкатенацией этого списка и предоставленного списка.
fun val concat( l: (Cons[A] val | Nil[A] val)) : (Cons[A] val | Nil[A] val)
Параметры
Возвращает
map[B: B]
Создает новый список, применяя функцию к каждому элементу списка.
fun val map[B: B](
f: {(val->A): val->B}[A, B] box)
: (Cons[B] val | Nil[B] val)
Параметры
- f: {(val->A): val->B}[A, B] box
Возвращает
flat_map[B: B]
Создает новый список, применяя функцию к каждому элементу списка и используя элементы полученных списков.
fun val flat_map[B: B](
f: {(val->A): List[B]}[A, B] box)
: (Cons[B] val | Nil[B] val)
Параметры
- f: {(val->A): List[B]}[A, B] box
Возвращает
for_each
Применяет предоставленную функцию к каждому элементу списка в порядке.
fun val for_each(
f: {(val->A)}[A] box)
: None val
Параметры
- f: {(val->A)}[A] box
Возвращает
- None val
filter
Создает новый список с теми элементами, которые удовлетворяют заданному предикату.
fun val filter(
f: {(val->A): Bool}[A] box)
: (Cons[A] val | Nil[A] val)
Параметры
- f: {(val->A): Bool}[A] box
Возвращает
fold[B: B]
Складывает элементы списка с помощью предоставленной функции.
fun val fold[B: B](
f: {(B, val->A): B^}[A, B] box,
acc: B)
: B
Параметры
- f: {(B, val->A): B^}[A, B] box
- acc: B
Возвращает
- B
every
Возвращает true, если каждый элемент удовлетворяет предоставленному предикату, иначе false.
fun val every(
f: {(val->A): Bool}[A] box)
: Bool val
Параметры
- f: {(val->A): Bool}[A] box
Возвращает
- Bool val
exists
Возвращает true, если хотя бы один элемент удовлетворяет предоставленному предикату, иначе false.
fun val exists(
f: {(val->A): Bool}[A] box)
: Bool val
Параметры
- f: {(val->A): Bool}[A] box
Возвращает
- Bool val
partition
Создает пару списков, первый из которых состоит из элементов, удовлетворяющих предоставленному предикату, а второй — из тех, которые не удовлетворяют.
fun val partition(
f: {(val->A): Bool}[A] box)
: ((Cons[A] val | Nil[A] val) , (Cons[A] val | Nil[A] val))
Параметры
- f: {(val->A): Bool}[A] box
Возвращает
drop
Создает список, отбрасывая первые n элементов.
fun val drop( n: USize val) : (Cons[A] val | Nil[A] val)
Параметры
- n: USize val
Возвращает
drop_while
Создаёт список, отбрасывая элементы с начала списка, пока один не перестанет удовлетворять предоставленному предикату.
fun val drop_while(
f: {(val->A): Bool}[A] box)
: (Cons[A] val | Nil[A] val)
Параметры
- f: {(val->A): Bool}[A] box
Возвращает
take
Создаёт список первых n элементов.
fun val take( n: USize val) : (Cons[A] val | Nil[A] val)
Параметры
- n: USize val
Возвращает
take_while
Создаёт список элементов, удовлетворяющих предоставленному предикату, пока один не перестанет.
fun val take_while(
f: {(val->A): Bool}[A] box)
: (Cons[A] val | Nil[A] val)
Параметры
- f: {(val->A): Bool}[A] box
Возвращает
© 2016-2020, The Pony Developers
© 2014-2015, Causality Ltd.
Licensed under the BSD 2-Clause License.
https://stdlib.ponylang.io/collections-persistent-Cons