Size: a a a

2020 December 08

b

basiliscos in Modern::Perl
а, ну -Wall, да, не подумал ))
источник

SZ

Sergey Zhmylove in Modern::Perl
basiliscos
Не помню где, но читал что foreach неудачное решение, т.к. тоже самое потом решили сделать для for. В итоге, в перле 2 ключевых слова, и делающих одно и тоже. (Ну, точнее, foreach, подмножество for, только длиннее). Лично я пытаюсь везде юзать for. Но, готов допустить. что где-то foreach будет экспрессивнее.
Foreach это алиас на for
источник

DE

Denis Erygin in Modern::Perl
вопрос был скорее риторический ;)
источник

AU

Alexey Ugnichev in Modern::Perl
Denis Erygin
вопрос был скорее риторический ;)
И видишь, во что это вылилось? ;)
источник

SZ

Sergey Zhmylove in Modern::Perl
Denis Erygin
вопрос был скорее риторический ;)
Ну, формально, у парсера уходит лишнее время чтобы пройти ещё по четырем байтам памяти (он там побайтово обращается), так что foreach это замедление при запуске перла тактов на 20-40.
Если в твоей программе будет линейная тысяча циклов, то при использовании foreach исходник будет весить на 4кб больше.
источник

DE

Denis Erygin in Modern::Perl
Sergey Zhmylove
Ну, формально, у парсера уходит лишнее время чтобы пройти ещё по четырем байтам памяти (он там побайтово обращается), так что foreach это замедление при запуске перла тактов на 20-40.
Если в твоей программе будет линейная тысяча циклов, то при использовании foreach исходник будет весить на 4кб больше.
серьезно кто-то такты и размер считает? :)
источник

SZ

Sergey Zhmylove in Modern::Perl
Denis Erygin
серьезно кто-то такты и размер считает? :)
Да, я тут сижу в ещё одном чатике -- там считают.

А ещё, когда перл парсит свои слова, у него внутри switch по strlen. И у парсера уходит гораздо меньше времени на парсинг for, потому что strlen быстрее вернет и потому что побайтовое сравнение также быстрее закончится.
И ещё там сравнение по алфавиту. Так вот токенов из трёх символов меньше, чем из пяти и сравнений до того, как перл поймет, что первая буква -- f для for нужно меньше, чем для foreach. Т.е. для трех символов он перебирает сначала буквы: ecaE, а для пяти: ecbaCB.
источник

DS

Dmitriy Shamatrin in Modern::Perl
Я знаю одного персонажа, который использовал табы вместо пробелов потому что так СИЛЬНО БЫСТРЕЕ работает
источник

DS

Dmitriy Shamatrin in Modern::Perl
Ну типа пробела четыре, а таб один
источник

SZ

Sergey Zhmylove in Modern::Perl
Dmitriy Shamatrin
Я знаю одного персонажа, который использовал табы вместо пробелов потому что так СИЛЬНО БЫСТРЕЕ работает
Я знаю одного персонажа, который решил, что whitespace слишком замедляют программу. Кажется, его звали Ларри и для решения этой проблемы он придумал новый язык, кажется «перл» или как-то так, где можно писать код без пробелов/табуляций
источник

SZ

Sergey Zhmylove in Modern::Perl
...лицом об клавиатуру :)
источник

SZ

Sergey Zhmylove in Modern::Perl
Я честно не понимаю, как у него получились такие результаты. Токенайзер как только узнает что токен это for/foreach, сразу перестает видеть между ними разницу и парсит через yyl_foreach(). Это реально алиасы, разница в работе только в том, как быстро парсер распарсит при компиляции (for чуть быстрее парсится (я написал выше почему), но это незаметно на фоне выполнения всей программы). Так что этот чел явно некорректно ставил его эксперименты и всей презентации можно смело не верить.
Причем, это справедливо даже для 5.8, в котором нету yyl_foreach() но и код для for/foreach всё равно общий.
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
Sergey Zhmylove
Я знаю одного персонажа, который решил, что whitespace слишком замедляют программу. Кажется, его звали Ларри и для решения этой проблемы он придумал новый язык, кажется «перл» или как-то так, где можно писать код без пробелов/табуляций
это ты с фортраном перепутал
источник

DM

Dmitriy Momotyuk in Modern::Perl
Sergey Zhmylove
Я честно не понимаю, как у него получились такие результаты. Токенайзер как только узнает что токен это for/foreach, сразу перестает видеть между ними разницу и парсит через yyl_foreach(). Это реально алиасы, разница в работе только в том, как быстро парсер распарсит при компиляции (for чуть быстрее парсится (я написал выше почему), но это незаметно на фоне выполнения всей программы). Так что этот чел явно некорректно ставил его эксперименты и всей презентации можно смело не верить.
Причем, это справедливо даже для 5.8, в котором нету yyl_foreach() но и код для for/foreach всё равно общий.
мне в целом без разницы, там в презе неоднократно говорится что на все эти истории не стоит обращать внимания, так как они абсолютно незаметны относительно всего остального
проблема что есть люди, которые всё равно зацикливаются на этом и везде пишут foreach чисто обосновывая это вот этим видосом. (ну там сказали! мне не сложно написать на 4 буквы больше, зато будет работать быстрее!)
источник

AU

Alexey Ugnichev in Modern::Perl
Vyacheslav Olkhovchenkov
это ты с фортраном перепутал
Там наоборот.
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
да ты шо!
источник

AU

Alexey Ugnichev in Modern::Perl
Ну хз, питонисты вроде считают, что отступы Гвидо изобрёл.
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
в фортране нет отступов, с 7 по 72 колонку можешь писать как угодно. хоть do 30 i хоть do30i хоть d o 3 0 i
источник

AU

Alexey Ugnichev in Modern::Perl
Да ты шо ©
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
ты с чем-то не согласен?
источник