Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix typos #105

Merged
merged 1 commit into from
Jul 18, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 4 additions & 4 deletions modules/35-vectors/50-transducers/description.ru.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

name: Трансдьюсеры
theory: |
Как уже было упомянуто, по умолчанию обработка коллекцией в Clojure знаменитой тройкой `map`, `filter` и `reduce` иммутабельна, что иногда может сильно увеличить расход памяти и время обработки коллекции большого размера. Однако в таких ситуациях на помощь приходят *трансдьюсеры*.
Как уже было упомянуто, по умолчанию обработка коллекций в Clojure знаменитой тройкой `map`, `filter` и `reduce` иммутабельна, что иногда может сильно увеличить расход памяти и время обработки коллекции большого размера. Однако в таких ситуациях на помощь приходят *трансдьюсеры*.

Трансдьюсеры - это составные алгоритмические преобразования над коллекциями. Они независимы от контекста своих входных и выходных параметров и задают только суть преобразования в терминах отдельного элемента коллекции. Поскольку трансдьюсереы не зависят от ввода или вывода, их можно использовать в различных процессах - коллекциях, потоках, каналах и т. д.
Трансдьюсеры - это составные алгоритмические преобразования над коллекциями. Они независимы от контекста своих входных и выходных параметров и задают только суть преобразования в терминах отдельного элемента коллекции. Поскольку трансдьюсеры не зависят от ввода или вывода, их можно использовать в различных процессах - коллекциях, потоках, каналах и т. д.

Редукционная функция - это такая функция, которую вы передаете для редукции, то есть - это функция, которая принимает накопленный результат и новую коллекцию и возвращает новый накопленный результат:

Expand Down Expand Up @@ -40,7 +40,7 @@ theory: |

Трансдьюсер `xf` - это стек преобразований, который будет применен к переданным элементам. Каждая функция в стеке выполняется перед операцией, которую она обертывает. Композиция трансдьюсеров выполняется справа налево, но строит стек преобразований, который выполняется слева направо (в этом примере фильтрация происходит перед маппингом).

В качестве мнемоники запомните, что упорядочивание функций трансдьюсеров в `comp` - имеет тот же порядок, что и преобразования последовательности в макросе `->>`. Пример выше эквивалентен следующему примеру:
В качестве мнемоники запомните, что упорядочивание функций трансдьюсеров в `comp` имеет тот же порядок, что и преобразования последовательности в макросе `->>`. Пример выше эквивалентен следующему примеру:

```clojure
(->> coll
Expand All @@ -58,7 +58,7 @@ theory: |
(transduce xform f init coll)
```

`transduce` не лениво редуцирует `coll` с помощью преобразователя `xform`, применяемого к редуцирующей функции `f`, используя `init` в качестве начального значения, если оно предоставлено, или `f` в противном случае. `f` функция знает о том, как накапливать результат. А теперь примеры:
`transduce` нелениво редуцирует `coll` с помощью преобразователя `xform`, применяемого к редуцирующей функции `f`, используя `init` в качестве начального значения, если оно предоставлено, или `f` в противном случае. `f` функция знает о том, как накапливать результат. А теперь примеры:

```clojure
(def xf (comp (filter odd?) (map inc)))
Expand Down