Nil[A: A]
Пустой список As.
primitive val Nil[A: A] is ReadSeq[val->A] box
Реализует
- ReadSeq[val->A] box
Конструкторы
create
new val create() : Nil[A] val^
Возвращает
- Nil[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
Возвращает ошибку, так как у Nil нет головы.
fun box head() : val->A ?
Возвращает
- val->A ?
tail
Возвращает ошибку, так как у Nil нет хвоста.
fun box tail() : (Cons[A] val | Nil[A] val) ?
Возвращает
reverse
Обратный порядок пустого списка — пустой список.
fun box reverse() : Nil[A] val
Возвращает
- Nil[A] val
prepend
Создаёт новый список с элементом, добавленным в начало этого списка.
fun box prepend( a: val->A!) : Cons[A] val
Параметры
- a: val->A!
Возвращает
- Cons[A] val
concat
Конкатенация любого списка l с пустым списком — это l.
fun box concat( l: (Cons[A] val | Nil[A] val)) : (Cons[A] val | Nil[A] val)
Параметры
Возвращает
map[B: B]
Применение функции от A к B к пустому списку даёт пустой список B.
fun box map[B: B](
f: {(val->A): val->B}[A, B] box)
: Nil[B] val
Параметры
- f: {(val->A): val->B}[A, B] box
Возвращает
- Nil[B] val
flat_map[B: B]
Применение функции от A к B к пустому списку даёт пустой список B.
fun box flat_map[B: B](
f: {(val->A): List[B]}[A, B] box)
: Nil[B] val
Параметры
- f: {(val->A): List[B]}[A, B] box
Возвращает
- Nil[B] val
for_each
Применение функции к каждому элементу пустого списка — это пустая операция.
fun box for_each(
f: {(val->A)}[A] box)
: None val
Параметры
- f: {(val->A)}[A] box
Возвращает
- None val
filter
Фильтрация пустого списка даёт пустой список.
fun box filter(
f: {(val->A): Bool}[A] box)
: Nil[A] val
Параметры
- f: {(val->A): Bool}[A] box
Возвращает
- Nil[A] val
fold[B: B]
Сворачивание пустого списка даёт исходный аккумулятор.
fun box 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
Любое условие истинно для каждого элемента пустого списка.
fun box every(
f: {(val->A): Bool}[A] box)
: Bool val
Параметры
- f: {(val->A): Bool}[A] box
Возвращает
- Bool val
exists
Для любого предиката в пустом списке нет элемента, который бы его удовлетворял.
fun box exists(
f: {(val->A): Bool}[A] box)
: Bool val
Параметры
- f: {(val->A): Bool}[A] box
Возвращает
- Bool val
partition
Единственное разбиение пустого списка — два пустых списка.
fun box partition(
f: {(val->A): Bool}[A] box)
: (Nil[A] val , Nil[A] val)
Параметры
- f: {(val->A): Bool}[A] box
Возвращает
drop
Нет элементов для удаления из пустого списка.
fun box drop( n: USize val) : Nil[A] val
Параметры
- n: USize val
Возвращает
- Nil[A] val
drop_while
Нет элементов для удаления из пустого списка.
fun box drop_while(
f: {(val->A): Bool}[A] box)
: Nil[A] val
Параметры
- f: {(val->A): Bool}[A] box
Возвращает
- Nil[A] val
take
Нет элементов для взятия из пустого списка.
fun box take( n: USize val) : Nil[A] val
Параметры
- n: USize val
Возвращает
- Nil[A] val
take_while
Нет элементов для взятия из пустого списка.
fun box take_while(
f: {(val->A): Bool}[A] box)
: Nil[A] val
Параметры
- f: {(val->A): Bool}[A] box
Возвращает
- Nil[A] val
contains[optional T: (A & HasEq[A!] #read)]
fun val contains[optional T: (A & HasEq[A!] #read)]( a: val->T) : Bool val
Параметры
- a: val->T
Возвращает
- Bool val
eq
fun box eq( that: Nil[A] val) : Bool val
Параметры
- that: Nil[A] val
Возвращает
- Bool val
ne
fun box ne( that: Nil[A] val) : Bool val
Параметры
- that: Nil[A] val
Возвращает
- Bool val
© 2016-2020, The Pony Developers
© 2014-2015, Causality Ltd.
Licensed under the BSD 2-Clause License.
https://stdlib.ponylang.io/collections-persistent-Nil