Size: a a a

2021 September 29

SU

Someone Unknown 🇭🇷... in Modern::Perl
⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⣠⣤⣶⣶ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⢰⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣀⣀⣾⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⡏⠉⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿ ⣿⣿⣿⣿⣿⣿⠀⠀⠀⠈⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⠉⠁⠀⣿ ⣿⣿⣿⣿⣿⣿⣧⡀⠀⠀⠀⠀⠙⠿⠿⠿⠻⠿⠿⠟⠿⠛⠉⠀⠀⠀⠀⠀⣸⣿ ⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⣴⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⢰⣹⡆⠀⠀⠀⠀⠀⠀⣭⣷⠀⠀⠀⠸⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠈⠉⠀⠀⠤⠄⠀⠀⠀⠉⠁⠀⠀⠀⠀⢿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⢾⣿⣷⠀⠀⠀⠀⡠⠤⢄⠀⠀⠀⠠⣿⣿⣷⠀⢸⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⡀⠉⠀⠀⠀⠀⠀⢄⠀⢀⠀⠀⠀⠀⠉⠉⠁⠀⠀⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿
источник

RH

Roman Hamster in Modern::Perl
Я "/o" к for прилепил - но да, в данном случае это глупо!
Про двойной регесксп в CB не видел - наверно в рецептах!
источник

GK

Grigoriy Koudrenko in Modern::Perl
ну вот в этом то и проблема, что не заменяет, если хочется избежать лишнего копирования больших массивов. foreach  будет всегда сначала вычислять массив в аргументе, а потом итерироваться по нему.  По крайне мере в perl годов 5.18, в новых не знаю.
На perl, если я правильно понимаю, реализовать функцию, которая работает со списком по принципу итератора можно только через XS как List::Util делает https://metacpan.org/release/PEVANS/Scalar-List-Utils-1.59/source/ListUtil.xs#L720
источник

SZ

Sergey Zhmylove in Modern::Perl
В современных тоже
источник

SZ

Sergey Zhmylove in Modern::Perl
Нет, можно и рр сделать
источник

GK

Grigoriy Koudrenko in Modern::Perl
А в какую сторону почитать тогда или что посмотреть не подскажешь? )
источник

SZ

Sergey Zhmylove in Modern::Perl
Классический пример из гугла: https://perlbanjo.com/9c75b89a08
источник

AK

Andrey Konovalov in Modern::Perl
Вычислять массив... А как его можно не вычислять?
источник

GK

Grigoriy Koudrenko in Modern::Perl
лениво, ну т.е. смотри связка map grep map не генирирует по массиву на каждый вызов
источник

AK

Andrey Konovalov in Modern::Perl
foreach разве что-то куда-то копирует? Он же даже элементы исходного массива позволяет менять на ходу
источник

SZ

Sergey Zhmylove in Modern::Perl
Генерирует не меньше, чем for
источник

AK

Andrey Konovalov in Modern::Perl
Вообще как раз генерирует. Это не поток какой-то, это реально сначала grep целиком отработает, потом map
источник

SZ

Sergey Zhmylove in Modern::Perl
Ну, это будут не массивы, а листы
источник

SZ

Sergey Zhmylove in Modern::Perl
Но то, что справа от правого мап будет вычислено раньше всего
источник

AK

Andrey Konovalov in Modern::Perl
Листы же в стеке аллоцируются?
источник

SZ

Sergey Zhmylove in Modern::Perl
Да
источник

AK

Andrey Konovalov in Modern::Perl
Интересно, что за стек такой бездонный
источник

SZ

Sergey Zhmylove in Modern::Perl
Они не аллоцируются, кстати
источник

SZ

Sergey Zhmylove in Modern::Perl
Их туда просто пушат
источник

SZ

Sergey Zhmylove in Modern::Perl
А вот :)
источник