Spec-Zone.ru › Nushell

reduce для фильтров

Агрегировать список в одно значение с помощью аккумулятора-замыкания.

Подпись

> reduce {flags} (closure)

Флаги

  • --fold, -f {any}: выполнить reduce с начальным значением

Параметры

  • closure: функция редукции

Типы входных/выходных данных:

Вход Выход
список<любой> любой
диапазон любой
таблица любой

Примеры

Сумма значений списка (то же, что и 'математическая сумма')

> [ 1234 ] |reduce {|it, acc| $it+$acc }
10

Сумма значений списка плюс их индексы

> [ 876 ] |enumerate|reduce-f0 {|it, acc| $acc+$it.item+$it.index }
24

Сумма значений с начальным значением (свертка)

> [ 1234 ] |reduce-f10 {|it, acc| $acc+$it }
20

Заменить выбранные символы в строке на 'X'

> [ iot ] |reduce-f"Arthur, King of the Britons" {|it, acc| $acc|str replace-a$it"X" }
ArXhur, KXngXfXheBrXXXns

Добавить возрастающие числа к каждому из имён файлов и объединить их точкой с запятой.

> ['foo.gz', 'bar.gz', 'baz.gz'] |enumerate|reduce-f'' {|strall| $"($all)(if$str.index!=0 {'; '})($str.index+1)-($str.item)" }
1-foo.gz;2-bar.gz;3-baz.gz

Конкатенация строки с самой собой, используя диапазон для определения количества повторений.

>lets="Str";0..2|reduce-f'' {|it, acc| $acc+$s}
StrStrStr

Copyright © 2019–2023 The Nushell Project DevelopersLicensed under the MIT License.
https://www.nushell.sh/commands/docs/reduce.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API