Skip to content

Commit 8b9fe23

Browse files
committed
Update docs translation.
1 parent ed3d740 commit 8b9fe23

1 file changed

Lines changed: 145 additions & 0 deletions

File tree

docs/README-RU.md

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ $ composer require markrogoyski/itertools-php:2.*
182182
#### Преобразование итерируемых сущностей
183183
| Iterator | Description | Code Snippet |
184184
|-----------------------------------------------|----------------------------------------------------------------|------------------------------------------------------------------|
185+
| [`partition`](#Partition) | Разделяет коллекцию на два списка: истинные и ложные | `Transform::partition($data, $predicate)` |
185186
| [`tee`](#Tee) | Создает несколько одинаковых независимых итераторов из данного | `Transform::tee($data, $count)` |
186187
| [`toArray`](#To-Array) | Преобразует итерируемую коллекцию в массив | `Transform::toArray($data)` |
187188
| [`toAssociativeArray`](#To-Associative-Array) | Преобразует итерируемую коллекцию в ассоциативный массив | `Transform::toAssociativeArray($data, [$keyFunc], [$valueFunc])` |
@@ -195,6 +196,8 @@ $ composer require markrogoyski/itertools-php:2.*
195196
| [`anyMatch`](#Any-Match) | Истинно, если предикат возвращает истину хотя бы для одного элемента коллекции | `Summary::anyMatch($data, $predicate)` |
196197
| [`arePermutations`](#Are-Permutations) | Истинно, если коллекции являются перестановками друг друга | `Summary::arePermutations(...$iterables)` |
197198
| [`arePermutationsCoercive`](#Are-Permutations-Coercive) | Истинно, если коллекции являются перестановками друг друга (в режиме приведения типов) | `Summary::arePermutationsCoercive(...$iterables)` |
199+
| [`contains`](#Contains) | Истинно, если коллекция содержит искомое значение | `Summary::contains($data, $needle)` |
200+
| [`containsCoercive`](#Contains-Coercive) | Истинно, если коллекция содержит искомое значение (в режиме приведения типов) | `Summary::containsCoercive($data, $needle)` |
198201
| [`exactlyN`](#Exactly-N) | Истинно, если предикат возвращает истину в точности для N элементов | `Summary::exactlyN($data, $n, $predicate)` |
199202
| [`isPartitioned`](#Is-Partitioned) | Истинно, если истинные элементы находятся в коллекции перед ложными (истинность определяет предикат) | `Summary::isPartitioned($data, $predicate)` |
200203
| [`isEmpty`](#Is-Empty) | Истинно, если коллекция пуста | `Summary::isEmpty($data)` |
@@ -309,6 +312,8 @@ $ composer require markrogoyski/itertools-php:2.*
309312
| [`anyMatch`](#Any-Match-1) | Истинно, если предикат возвращает истину хотя бы для одного элемента коллекции | `$stream->anyMatch($predicate)` |
310313
| [`arePermutationsWith`](#Are-Permutations-With) | Истинно, если коллекции являются перестановками друг друга | `$stream->arePermutationsWith(...$iterables)` |
311314
| [`arePermutationsCoerciveWith`](#Are-Permutations-Coercive-With) | Истинно, если коллекции являются перестановками друг друга (в режиме приведения типов) | `$stream->arePermutationsCoerciveWith(...$iterables)` |
315+
| [`contains`](#Contains-1) | Истинно, если поток содержит искомое значение | `$stream->contains($needle)` |
316+
| [`containsCoercive`](#Contains-Coercive-1) | Истинно, если поток содержит искомое значение (в режиме приведения типов) | `$stream->containsCoercive($needle)` |
312317
| [`exactlyN`](#Exactly-N-1) | Истинно, если предикат возвращает истину в точности для N элементов | `$stream->exactlyN($n, $predicate)` |
313318
| [`isEmpty`](#Is-Empty-1) | Истинно, если коллекция пуста | `$stream::isEmpty()` |
314319
| [`isPartitioned`](#Is-Partitioned-1) | Истинно, если истинные элементы находятся в коллекции перед ложными (истинность определяет предикат) | `$stream::isPartitioned($predicate)` |
@@ -343,6 +348,7 @@ $ composer require markrogoyski/itertools-php:2.*
343348
|-------------------------------------------------|-------------------------------------------------------------|---------------------------------------------------------|
344349
| [`toArray`](#To-Array) | Возвращает массив из элементов потока | `$stream->toArray()` |
345350
| [`toAssociativeArray`](#To-Associative-Array-1) | Возвращает ассоциативный массив из элементов потока | `$stream->toAssociativeArray($keyFunc, $valueFunc)` |
351+
| [`toPartition`](#To-Partition) | Разделяет поток на два списка: истинные и ложные | `$stream->toPartition($predicate)` |
346352
| [`tee`](#Tee-1) | Создает несколько одинаковых независимых потоков из данного | `$stream->tee($count)` |
347353

348354
##### Операции с побочными эффектами
@@ -1737,6 +1743,23 @@ foreach (File::readLines($fileHandle) as $line) {
17371743
```
17381744

17391745
## Transform
1746+
### Partition
1747+
Разделяет коллекцию на два списка на основе предиката.
1748+
1749+
Возвращает массив из двух списков: `[истинные значения, ложные значения]`. Оба выходных массива — списки с переиндексацией (с нулевыми индексами); ключи исходной коллекции отбрасываются. Значение, возвращаемое предикатом, приводится к булевому типу через `(bool)`.
1750+
1751+
```Transform::partition(iterable $data, callable $predicate): array```
1752+
1753+
```php
1754+
use IterTools\Transform;
1755+
1756+
$numbers = [1, 2, 3, 4, 5, 6];
1757+
1758+
[$evens, $odds] = Transform::partition($numbers, fn (int $n): bool => $n % 2 === 0);
1759+
// $evens: [2, 4, 6]
1760+
// $odds: [1, 3, 5]
1761+
```
1762+
17401763
### Tee
17411764
Создает несколько одинаковых независимых итераторов из данного.
17421765

@@ -1873,6 +1896,55 @@ $boolean = Summary::arePermutationsCoercive($set1, $set2, $set3);
18731896
// true
18741897
```
18751898

1899+
### Contains
1900+
Возвращает истину, если коллекция содержит искомое значение, при [строгом сравнении типов](#Режимы-типизации).
1901+
1902+
```Summary::contains(iterable $data, mixed $needle): bool```
1903+
1904+
- Скаляры сравниваются строго по типу (`1` не равно `'1'`; `0` не равно `false`).
1905+
- Для объектов совпадает только один и тот же экземпляр.
1906+
- Массивы сравниваются через `===`.
1907+
- `NaN` никогда не совпадает с `NaN` (так как `NaN !== NaN`).
1908+
- Обрывает итерацию при первом совпадении.
1909+
1910+
```php
1911+
use IterTools\Summary;
1912+
1913+
$primes = [2, 3, 5, 7, 11, 13];
1914+
1915+
$boolean = Summary::contains($primes, 7);
1916+
// true
1917+
1918+
$boolean = Summary::contains($primes, 4);
1919+
// false
1920+
1921+
$boolean = Summary::contains($primes, '7');
1922+
// false (строгое сравнение)
1923+
```
1924+
1925+
### Contains Coercive
1926+
Возвращает истину, если коллекция содержит искомое значение, в режиме [приведения типов](#Режимы-типизации).
1927+
1928+
```Summary::containsCoercive(iterable $data, mixed $needle): bool```
1929+
1930+
- Скаляры сравниваются нестрого по значению (`1` совпадает с `'1'`; `0` совпадает с `false`; `'1e2'` совпадает с `100`).
1931+
- Объекты сравниваются по сериализованному значению (бросает `\InvalidArgumentException`, если искомое значение или элемент коллекции не сериализуется).
1932+
- Массивы сравниваются по сериализованному значению.
1933+
- `NaN` совпадает с `NaN` (согласованно с другими операциями приведения типов в библиотеке).
1934+
- Обрывает итерацию при первом совпадении: несериализуемый элемент встретится только при отсутствии совпадений до него.
1935+
1936+
```php
1937+
use IterTools\Summary;
1938+
1939+
$primes = [2, 3, 5, 7, 11, 13];
1940+
1941+
$boolean = Summary::containsCoercive($primes, '7');
1942+
// true (приведение типов)
1943+
1944+
$boolean = Summary::containsCoercive([100, 200, 300], '1e2');
1945+
// true
1946+
```
1947+
18761948
### Exactly N
18771949
Истинно, если предикат возвращает истину в точности для N элементов.
18781950

@@ -3842,6 +3914,49 @@ $boolean = Stream::of([1, 2.0, '3'])
38423914
// true
38433915
```
38443916

3917+
##### Contains
3918+
Возвращает истину, если поток содержит искомое значение, при [строгом сравнении типов](#Режимы-типизации).
3919+
3920+
```$stream->contains(mixed $needle): bool```
3921+
3922+
- Скаляры сравниваются строго по типу (`1` не равно `'1'`; `0` не равно `false`).
3923+
- Для объектов совпадает только один и тот же экземпляр.
3924+
- Массивы сравниваются через `===`.
3925+
- `NaN` никогда не совпадает с `NaN`.
3926+
- Обрывает итерацию при первом совпадении.
3927+
3928+
```php
3929+
use IterTools\Stream;
3930+
3931+
$primes = [2, 3, 5, 7, 11, 13];
3932+
3933+
$boolean = Stream::of($primes)->contains(7);
3934+
// true
3935+
3936+
$boolean = Stream::of($primes)->contains('7');
3937+
// false (строгое сравнение)
3938+
```
3939+
3940+
##### Contains Coercive
3941+
Возвращает истину, если поток содержит искомое значение, в режиме [приведения типов](#Режимы-типизации).
3942+
3943+
```$stream->containsCoercive(mixed $needle): bool```
3944+
3945+
- Скаляры сравниваются нестрого по значению (`1` совпадает с `'1'`; `0` совпадает с `false`; `'1e2'` совпадает с `100`).
3946+
- Объекты сравниваются по сериализованному значению (бросает `\InvalidArgumentException`, если искомое значение или элемент потока не сериализуется).
3947+
- Массивы сравниваются по сериализованному значению.
3948+
- `NaN` совпадает с `NaN`.
3949+
- Обрывает итерацию при первом совпадении.
3950+
3951+
```php
3952+
use IterTools\Stream;
3953+
3954+
$primes = [2, 3, 5, 7, 11, 13];
3955+
3956+
$boolean = Stream::of($primes)->containsCoercive('7');
3957+
// true (приведение типов)
3958+
```
3959+
38453960
##### Exactly N
38463961
Возвращает истину, если в точности для n элементов из потока предикат возвращает истину.
38473962

@@ -4320,6 +4435,36 @@ $array = Stream::of(['message 1', 'message 2', 'message 3'])
43204435
// [3b3f2272b3b904d342b2d0df2bf31ed4 => MESSAGE 1, 43638d919cfb8ea31979880f1a2bb146 => MESSAGE 2, ... ]
43214436
```
43224437

4438+
##### To Partition
4439+
Разделяет поток на два списка на основе предиката.
4440+
4441+
Возвращает массив из двух списков: `[истинные значения, ложные значения]`. Оба выходных массива — списки с переиндексацией (с нулевыми индексами); ключи исходной коллекции отбрасываются. Значение, возвращаемое предикатом, приводится к булевому типу через `(bool)`.
4442+
4443+
```$stream->toPartition(callable $predicate): array```
4444+
4445+
```php
4446+
use IterTools\Stream;
4447+
4448+
[$evens, $odds] = Stream::of([1, 2, 3, 4, 5, 6])
4449+
->toPartition(fn (int $n): bool => $n % 2 === 0);
4450+
// $evens: [2, 4, 6]
4451+
// $odds: [1, 3, 5]
4452+
```
4453+
4454+
Так как обе части возвращаются вместе, `toPartition` естественно сочетается с операциями, потребляющими два списка. Например, при составлении турнирной сетки — разделяем номера посева на верхнюю и нижнюю половины, затем образуем пары верх vs перевёрнутая нижняя половина:
4455+
4456+
```php
4457+
use IterTools\Stream;
4458+
4459+
[$topHalf, $bottomHalf] = Stream::of([1, 2, 3, 4, 5, 6, 7, 8])
4460+
->toPartition(fn (int $seed): bool => $seed <= 4);
4461+
4462+
$matchups = Stream::of($topHalf)
4463+
->zipWith(array_reverse($bottomHalf))
4464+
->toArray();
4465+
// [[1, 8], [2, 7], [3, 6], [4, 5]]
4466+
```
4467+
43234468
##### Tee
43244469
Создает несколько одинаковых независимых потоков из данного.
43254470

0 commit comments

Comments
 (0)