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