Циклы криво реализованы. И вот почему.

  Рет қаралды 127,367

ExtremeCode

ExtremeCode

Күн бұрын

Пікірлер: 798
@ExtremeCode
@ExtremeCode 11 ай бұрын
Братан, хорош, давай подпишись на наш Telegram канал, мы там байки и кулстори травим 🖤 t.me/extremecode А для бустеров у нас есть эксклюзивный контент: boosty.to/extremecode
@LithiumDeuteride-6
@LithiumDeuteride-6 11 ай бұрын
Реально, есть только cycle(){...} а какой цикл уже по контексту. cycle(a
@101picofarad
@101picofarad 7 ай бұрын
В матлабе for используется для автоматического расщепления на параллельные потоки. Если прогер не пытается изобразить из фора вайл, то компилятор сам раскидает итератор по ядрам и соберет обратно в вектор ответа. А если прогер тупит, то ткнет его носом и скажет что этот кот он параллелить не будет по вот такой причине.
@LeeSinRus
@LeeSinRus 11 ай бұрын
Программирую 10 лет. Сегодня впервые узнал про циклы! Топ контент!
@user-qwc4yy3xs7d
@user-qwc4yy3xs7d 11 ай бұрын
Вот они nocode программисты
@myriaxont
@myriaxont 11 ай бұрын
Сразу видно - ФП-шник.
@АндрейКучма-д9ю
@АндрейКучма-д9ю 11 ай бұрын
Ска... я завис. Не могу понять.. Хочу ли я это развидеть??
@ildar5552
@ildar5552 11 ай бұрын
10 лет программирую на 1с. Сегодня впервые узнал, что есть ещё и другие языки программирования! Топ контент!
@Tdmmilestone
@Tdmmilestone 11 ай бұрын
Какие еще циклы? 😳
@_aDeer_
@_aDeer_ 11 ай бұрын
жду следующий видос про основу всего программирования - про комментарии в коде
@EvgenOl
@EvgenOl 11 ай бұрын
Особенно про те, удаление которых крашит код :)
@BeDb_MeDb
@BeDb_MeDb 11 ай бұрын
А че, еще и комментировать можно было?:-D
@juke_crusader
@juke_crusader 11 ай бұрын
Уже пять лет жду видео о том, как компилировать мой код на пайтоне (я пишу в блокноте)
@evgeniygorkaviy4690
@evgeniygorkaviy4690 11 ай бұрын
Комментарии - зло. Код надо документировать.
@kexforlecture
@kexforlecture 11 ай бұрын
И про документирование кода! (summary)
@chuprikovs30
@chuprikovs30 11 ай бұрын
Голосом Линдемана: "Do... Do While... Do While For..."
@ГераклитНеконгруэнтный
@ГераклитНеконгруэнтный 11 ай бұрын
Do While For GoTo... Do While For GoTo... Do While For GoTo...
@thenatron6136
@thenatron6136 11 ай бұрын
... und filter map reduce!
@blackhole_programmers
@blackhole_programmers 8 ай бұрын
Вы боги!!!!
@ГераклитНеконгруэнтный
@ГераклитНеконгруэнтный 8 ай бұрын
@@blackhole_programmers ну что вы, какие боги, так, просто ангелы, гыгы
@Alexdc11Xof
@Alexdc11Xof 2 ай бұрын
Призываю бригаду
@i-am-ultra
@i-am-ultra 11 ай бұрын
Далее в программе: видео о ide, видео о переменных, видео о условных операторах
@bullinchik
@bullinchik 11 ай бұрын
А видео о переменных уже есть, смотрите на канале
@i-am-ultra
@i-am-ultra 11 ай бұрын
@@bullinchik программирование для маленьких и тупых вернулось, но в этот раз для ещё более маленьких и ещё более тупых
@whyyyyyyyyyyyyyyyyyyyyyyyyyyry
@whyyyyyyyyyyyyyyyyyyyyyyyyyyry 11 ай бұрын
Скоро доберемся до списков... а там через кордан и в вывод/ввод данных и на свободу
@evgeniygorkaviy4690
@evgeniygorkaviy4690 11 ай бұрын
О фишках Windows, о которых мы не знали.
@neveryirosold3958
@neveryirosold3958 11 ай бұрын
​@@bullinchik😅
@tozpeak
@tozpeak 11 ай бұрын
Щас бы доебаться к фору за то, что он обеспечивает видимость переменных счётчика в рамках заголовка и тела цикла. Чтобы какой-нибудь умник не пошёл использовать счётчик предыдущего цикла у себя без переинициализации. И организацию проверки с изменением счётчика в одной строке, чтобы не бегать в конец 100500 строчного цикла.
@Sunr1sen2
@Sunr1sen2 11 ай бұрын
С языка снял
@BeDb_MeDb
@BeDb_MeDb 11 ай бұрын
К циклам я претензий не имею. Тот же repeat например и пр. А вот к их использованию, когда человек явно должен просто по всем элементам пройтись без создания нового списка измененных значений (привет люди которые считают, что map ровно такой же а то и быстрее forEach) они есть. Собственно, если это есть, значит кому-то оно было нужно и либо ты не столкнулся с местом где это нужно, либо не понимаешь/чувствуешь концепцию. Мы же сами заложники привычек. Неявно читаемую идею, что хватит вносить в языки на каждый чих оббертку - поддерживаю. Потом в таком лесу состаришься. В общем идей в видосе много, но тема сисек не раскрыта.
@evgeniygorkaviy4690
@evgeniygorkaviy4690 11 ай бұрын
Чтобы умник не переиспользовал счётчик, счётчик должен существовать только в контексте тела цикла. Во взрослых языках всё для этого сделано. Кривые руки, конечно, никто не отменял.
@azhonoredground9855
@azhonoredground9855 11 ай бұрын
Это прямо как с неявной типизацией через var. Вроде функционально тоже самое что и явная, а при проверке приходится после этого искать источник и во что он конвертируется
@hunterofthedemon
@hunterofthedemon 11 ай бұрын
Здарова Свен ​@@Sunr1sen2
@extradip8587
@extradip8587 11 ай бұрын
Вообще ни о чем видео, претензия к for и другим операторам просто идиотская: "давайте вместо простых и понятных операторов для определенных ситуаций всегда использовать один и тот же и костылями его приводить к тому, от чего мы отказались, чтобы ну это самое ну просто"; про goto тезиса никакого не увидел, просто упомянулся зачем-то; а "не используйте коллекции в качестве циклов" просто невероятная мысль. Ни развлекательный, ни познавательный и не контент. Мусор
@AlexandroLavichez
@AlexandroLavichez 11 ай бұрын
Согласен, автор дегенерат
@rebrov_vyacheslav
@rebrov_vyacheslav 11 ай бұрын
@@AlexandroLavichez скорее провокатор, вкидывая очевидную дичь, пытается накрутить комментов.. как видим даже чутка получается
@chakchaky8521
@chakchaky8521 11 ай бұрын
Да, соглашусь тут... До гото докатился автор... Я с гото начинал... действительно полная дичь...но её уже нету лет так 20.
@Бальбулий
@Бальбулий 11 ай бұрын
видос только для того чтобы вставить рекламу гайс вы шо не поняли?
@MrChelovek68
@MrChelovek68 11 ай бұрын
Ну,не считая этого видео, человеки очень любят бить себя по рукам,пытаясь редуцировать имеющийся базис инструментов. Срачи о линупсе вс виндовс вс макос,срачи о виме и ide.
@ulyssesaa
@ulyssesaa 11 ай бұрын
"Все держится на циклах" Haskell: 😮😮
@redofficiale
@redofficiale 11 ай бұрын
Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 Haskell: 😮😮 ...
@DrezdenHC
@DrezdenHC 9 ай бұрын
Топ 10 комерческих програм на хаскеле.
@merovingen4546
@merovingen4546 11 ай бұрын
во что бы там код не разворачивался и не компилился, сахар на то и сахар, что бы мне как разработчику одни и те же вещи было проще писать, а уже если мне нужно упороться то я напишу той конструкцией, которая подойдёт лучше
@chakchaky8521
@chakchaky8521 11 ай бұрын
Ты просто не понял сути - автор говорит что языку достаточно одного for для всего. А while это пережитки древней цивилизации. Сегодня этот цикл while ни к чему вообще. Его бы по хорошему выкорчевать из будущих версий языков...тут я даже соглашусь
@ТеодеусМорисон
@ТеодеусМорисон 11 ай бұрын
​@@chakchaky8521машина использует goto. Цикл for/while вам даёт транслятор в псевдокод после дизассемблирования, чтобы читать было удобнее.
@iii8176
@iii8176 11 ай бұрын
10 лет писал на двоичном коде, впервые узнал о циклах!! топ контент.
@EvgeniyFadeev
@EvgeniyFadeev 11 ай бұрын
А не врёшь? ;)
@rebrov_vyacheslav
@rebrov_vyacheslav 11 ай бұрын
@@EvgeniyFadeev врет )
@applerson4800
@applerson4800 16 күн бұрын
Не врет это правда мы с ним вместе работали
@michaelinuente92
@michaelinuente92 11 ай бұрын
ответ прост, как джун после курсов: для лучшей читабельности. синьоры, под кофиё, не готовы ломать глаза от всяких "гоуту".
@ЮраН-ь2к
@ЮраН-ь2к 11 ай бұрын
Вообще-то ещё для лучшей исправляемости. И рисуемости в виде блок-схемы без пересечений. Хотя некоторые алгоритмы с использованием гоуту проще и понятнее, чем без.
@michaelinuente92
@michaelinuente92 11 ай бұрын
@@ЮраН-ь2к какой ещё "рисуемости"? :) тогда уже "диаграммности" :) и "читабельность" предполагает "исправляемость" :)
@michaelinuente92
@michaelinuente92 11 ай бұрын
@@ЮраН-ь2к к слову о "диаграммости", во времена Рюрика действительно писали мега методы, кои монахи изображали в виде диаграмм. но после изобретения Калашникова за попытку написания сходных трактатов программист получает с вертушки в ухо. больше двух "if" - расстрел. поэтому диаграмм на методы не рисуют :)
@falser20
@falser20 11 ай бұрын
Круто, теперь можно снять про переменные, ссылки и обязательно покуракерать, что в моем любимом петухончике нет констант
@TheTheMrkpyt
@TheTheMrkpyt 11 ай бұрын
Возникает философский вопрос, а есть ли в C# константы, если в нём так развито мето программирование и рефлексия
@ankagris4689
@ankagris4689 11 ай бұрын
Так есть видос про переменные
@falser20
@falser20 11 ай бұрын
@@ankagris4689 там нет заглядывания внутрь до уровня регистров в ассемблере или работы с указателями как в C. А ведь это база
@КузькинДима
@КузькинДима 11 ай бұрын
Можно сделать свой класс или стандартно через pip install
@qwertymangames1800
@qwertymangames1800 11 ай бұрын
В петухончике нет классического цикла for, так как он работает по логике foreach ВСЕГДА. И соответственно бесконечного цикла на нём не сделать тоже.
@AIFT_Staff
@AIFT_Staff 11 ай бұрын
о, спустя 6 часов после выхода видео переименовал его, до этого оно называлось "Кривая основа всех языков программирования"
@hollow.one.w
@hollow.one.w 11 ай бұрын
Ну надо кликбейтить, это же ютуб
@ankagris4689
@ankagris4689 11 ай бұрын
Этого никогда не было. Видео всегда называлось так
@hollow.one.w
@hollow.one.w 11 ай бұрын
@@ankagris4689 ну и как теперь верить людям...
@RusSaboteur
@RusSaboteur 11 ай бұрын
Рекурсия где?! Где рекурсия я спрашиваю?! Функциональное программирование для кого изобрели, м? Все циклы можно реализовать рекурсией. Все циклы - синтаксичечкий сахар. Change my mind
@daiske2867
@daiske2867 11 ай бұрын
там где рекурсия бесплатная да, но не все языки haskell и пролог
@RusSaboteur
@RusSaboteur 11 ай бұрын
@@daiske2867 scala?
@СлавныйЛехаОбломов
@СлавныйЛехаОбломов 11 ай бұрын
Все циклы можно реализовать переставляя поинтер на стеке, come on
@arhitutorials
@arhitutorials 11 ай бұрын
Респект братан! Рекурсию то забыли бородатые синьоры)
@Senteggo
@Senteggo 11 ай бұрын
Все функции в целом - синтаксический сахар. Change my mind
@froller
@froller 7 ай бұрын
За 25 лет в профессии я нашел только одно годное применение для goto: вываливаться из матрешки вложенных циклов куда-то поближе к return, чтобы по-бырому подчистить хвосты и вернуть наверх ошибку. Любой, считающий что следует использовать флаг ошибки и проверять его в десятке мест, может добровольно катапультироваться из окна.
@Lsp-plugIn
@Lsp-plugIn Ай бұрын
А вот если бы стандартизаторы C и C++ завезли конструкцию break как в Java, goto вообще не нужен бы оказался. Потому что фатальная проблема break в этих языках в том, что он выходит только из самого последнего по вложенности блока, когда мог бы делать куда более полезную работу. Но что-то никто не шевелится, лучше корутины в стандарт тащить, от реализации которых лезть на стену хочется.
@froller
@froller 29 күн бұрын
@@Lsp-plugIn да, break label бы сильно улучшило ситуацию. Еще полезным бывает goto из обработчика ошибки в гущу деинициализационного кода. Сильно экономит время и объем как обработчиков, так и деинициализационного кода.
@ДаниилЕфименко-е7ч
@ДаниилЕфименко-е7ч 9 күн бұрын
Для выхода из вложенных циклов достаточно вынести их в отдельный метод и делать return вместо break. А если очень нужно, чтобы работало быстро, то метод всегда можно заинлайнить.
@Lsp-plugIn
@Lsp-plugIn 8 күн бұрын
@@ДаниилЕфименко-е7ч 1. Это не всегда удобное решение, особенно когда вы пишете какой-нибудь нетривиальный конечный автомат. 2. Директива inline у современных компиляторов необязательна к исполнению.
@fordin3726
@fordin3726 11 ай бұрын
Братан, хорош, давай, давай вперед! Контент в кайф, можно ещё? Вообще красавчик!
@MrReadManiac
@MrReadManiac 11 ай бұрын
Можно вот этого вот почаще?
@dandyhorsse
@dandyhorsse 11 ай бұрын
Давайте, пока!
@anon_commentator
@anon_commentator 11 ай бұрын
Как же хорошо, что его видосы набирают всё меньше просмотров. А то я уже задолбался во всех уголках интернета находить эту фразу.
@herman2lv
@herman2lv 11 ай бұрын
А куда скидывать деньги на лечение?
@EvgenOl
@EvgenOl 11 ай бұрын
Ну коли три вида цикла не нужны, и ты предлагаешь оставить только 1, то пошли дальше. Давай уберём все! Ведь их легко заменяет goto. А потом и его отменим и пересядем все на ассемблер :)
@mokaakasia4636
@mokaakasia4636 11 ай бұрын
Базу выдал. Предлагаю еще отметить конструкции try catch , if , вызов функций , так как они тоже по факту оболочка для goto. Ну ладно , нужны еще условные переходы типа jnz, но это не важно.
@СергейКураев-в2з
@СергейКураев-в2з 11 ай бұрын
Жаль автор не в курсе но на уровне железа цикл FOR реализуется командой LOOP, а While и прочее реализуется методом JMP (это аналог GOTO на ассемблере), тут я говорю про архитектуру х86, цикл FOR везде тащат из-за того что у него есть своя аппаратная реализация.
@gunsncodes6665
@gunsncodes6665 7 ай бұрын
И что быстрее? Loop или jmp?
@СергейКураев-в2з
@СергейКураев-в2з 7 ай бұрын
@@gunsncodes6665 команда loop за такт выполняет уменьшение счетчика на единицу, сравнение, и переход на нужный адрес кода, jmp выполнит только переход, вам нужен еще такт чтобы выполнить уменьшение счетчика и еще один чтобы выполнить сравнение, а еще что то подсказывает мне что конвейер будет быстрее работать с loop
@amogus6002
@amogus6002 6 ай бұрын
@@gunsncodes6665 Гениально, задавать вопрос спустя четверть года
@ardni1
@ardni1 6 ай бұрын
А что блин значит на уровне железа? Loop это ассемблер команда и есть. Да только for в нормальных яхыках (всех) никогда не детерминирует условие окончания как значение счетчика, там не всегда как бы счетчик, допускается любое условие. И поэтому реализовать такое можно только проверкой и прыжком
@СергейКураев-в2з
@СергейКураев-в2з 6 ай бұрын
@@ardni1 значит то что процессор за так уменьшит значение счетчика, проведет сравнение с нулем и выполнит JMP, и как раз нормальные языки ориентированные на железо всегда приводят for к каноническому виду, когда счетчик начинается с N и заканчивается на 0, попутно перестраивая все индексы внутри цикла чтобы сохранить логику
@fahrenheit1863
@fahrenheit1863 11 ай бұрын
Я вообще не программист, случайно увидел видос. Но разве под капотом у map, reduce и filter не цикл или goto - jmp? Еще вроде как можно зациклить код рекурсией, или это другое? А разве под капотом операторов for и while не используется тот самый goto - jmp?
@progressive_agriculture
@progressive_agriculture 11 ай бұрын
Циклы - надстройка над ассемблером, или машинными кодами. Логика циклов языков высокого уровня в том, что у него фиксированный вход в начале и фиксированный выход в конце. Прервать breake можно, но все равно попадаешь в конец цикла. А эмуляция цикла через goto позволяет с любого места отправиться в любое, причем, хоть из середины одного "цикла" в середину другого "цикла". Использование for и while и отказ от goto позволяет избежать таких косяков. Чтоб не плодить ошибки.
@Senteggo
@Senteggo 11 ай бұрын
понятное дело, что циклы под капотом у map, reduce и тд, и вероятно goto под капотом у циклов, к чему ты это написал? А про рекурсию - странно, что автор видео про нее не вспомнил
@shatalinator
@shatalinator 11 ай бұрын
Если в рекурсивной функции нет условия её прерывания, она будет выполняться бесконечно долго. Под "бесконечно долго" подразумевается "пока не переполнится стек вызова".
@dmitrii-329d
@dmitrii-329d 11 ай бұрын
В том же лиспе нет циклов, но есть хвостовая рекурсия, если мне не изменяет память
@РоманСмородов-л2в
@РоманСмородов-л2в 11 ай бұрын
Рекурсия-зло, пару тысяч раз рекурсия сработает и бам: стекоферфлоу
@progressive_agriculture
@progressive_agriculture 11 ай бұрын
При тех тормозах, какие создают современные языки программирования, придираться к скорости разнообразных циклов нет смысла. А синтаксический сахар для того и нужен, чтоб легче писать было. Оно логичней. Хотя можно любой перебор через любой реализовать.
@СлавныйЛехаОбломов
@СлавныйЛехаОбломов 11 ай бұрын
В чем проблема современных ЯП? Если в python/js всё объект - это не проблема языка. А проблема того кто использует голый for для многомерных массивов в том же python
@progressive_agriculture
@progressive_agriculture 11 ай бұрын
@@СлавныйЛехаОбломов а Вы с какой целью его применить собираетесь? Каждый инструмент хорош для своего дела. И Python без библиотек написанных на с/с++ ни чем ни лучше старого basic. А реализовать на с++ любые списки и коллекции - ни каких проблем.
@АлександрСоловьев-ю9ц2к
@АлександрСоловьев-ю9ц2к 11 ай бұрын
@@СлавныйЛехаОбломов > Если в python/js всё объект - это не проблема языка Угу, проблема лишь в том что это проблема рантайма этого языка.
@ДаниилЕфименко-е7ч
@ДаниилЕфименко-е7ч 9 күн бұрын
Компилируемые языки не создают тормозов. Тормоза создают библиотеки, фреймворки и объектно ориентированный дизайн. Ну и кривые руки :)
@progressive_agriculture
@progressive_agriculture 8 күн бұрын
@ Это если писать консольное приложение без библиотек и фреймворков, то скорость компилируемых языков не будет различаться на порядки. Но кто так сейчас пишет? А голые языки в разы различаются по скорости. Более того, хорошо написанная библиотека на С++ позволяет сделать вид, что тот же Pyton летает!
@uselessevgeny3726
@uselessevgeny3726 11 ай бұрын
Братан, хорош, давай, давай вперед! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
@nnnvrmnd
@nnnvrmnd 11 ай бұрын
Братан, хорош! Давай давай вперед! Контент кайф, можно ещё? Вообще красавчик. Можно вот этого вот почаще? Давайте, пока!
@scad_
@scad_ 10 ай бұрын
По поводу goto описано в "Чистая архитектура" Роберта Мартина. Не новость. Но я не могу сказать, что цикл while и for взаимозаменяемы. Автор же сам говорит, что в while не известно количество итерации, а в for известно. В этом и разница концептуального подхода. На том же python можно сделать просто while True и цикл будет крутится бесконечно
@xumpocmb-404
@xumpocmb-404 7 ай бұрын
Братан, хорош, давай, давай вперед! Контент в кайф, можно ещё? Вообще красавчик!
@tohoto2183
@tohoto2183 11 ай бұрын
Честно говоря так и не понял ,что хотели сказать ExtremeCode . Они имели ввиду циклы вообще или только определенного языка?
@MrCter
@MrCter 11 ай бұрын
не стоит искать смысл там, где его нет ) главное - реклама есть
@OlegTar
@OlegTar 11 ай бұрын
циклы вообще
@paztwel
@paztwel 11 ай бұрын
Речь идёт про циклы при работе с массивами. Вообще это бред высосанный из пальца.
@rar24
@rar24 11 ай бұрын
когда видос про энвелоуп
@ПашаИвлев
@ПашаИвлев 11 ай бұрын
Комент в топ!!
@NahNahNahnana
@NahNahNahnana 11 ай бұрын
Давно интересует эта тема, но в интернете никак не могу найти толкового гайда
@ВладимирВоробьев-е6о
@ВладимирВоробьев-е6о 11 ай бұрын
Сишный for был создан для компьютера с 8 килобайтами памяти. Это PDP-7 и UNIX. Памяти у Юникса было как обрывок чека в туалете, поэтому у for в языке C такой странный синтаксис.
@alexf3289
@alexf3289 11 ай бұрын
Что в нём странного? О_о
@No0ne4ik
@No0ne4ik 11 ай бұрын
Человек фигню написал, в C for самый нормальный, там явно указана инициализация переменной, изменение и проверка перехода.
@SilentPrayerCG
@SilentPrayerCG 11 ай бұрын
Вот почему в спектумовском бейские тоже фор есть.. там-же тоже памяти ровно на стикер на котором размер трусов печатают.
@ulyssesaa
@ulyssesaa 11 ай бұрын
@@No0ne4ik в чистом Си в for нельзя инициализировать переменную. Напоминаю, что присвоение и инициализация - это две абсолютно разные операции.
@ВладимирВоробьев-е6о
@ВладимирВоробьев-е6о 11 ай бұрын
@@SilentPrayerCG В Спектруме памяти на порядок больше чем у UNIX. Одно ПЗУ Синклера в два раза больше чем вся оперативная память Юникса. Достаточно чтобы использовать человеческий оператор FOR, а не эту кастрированную замухрышку. Ну и как итог, сколько Синклеров продали? А на скольких компах Юникс поставили за то же время? 30 (тридцать штук).
@komillermaster6821
@komillermaster6821 11 ай бұрын
В питоне, for в привычном понимание не существует, он перебирает итерируемые объекты)
@SklerozRu
@SklerozRu 11 ай бұрын
for each по сути
@grifon187
@grifon187 8 ай бұрын
-насколько идиотское видео вы хотите? -да
@aywanbr
@aywanbr 11 ай бұрын
В golang только for, в котором прячется for и while. В erlang только рекурсия, тема которой требует отдельного видоса. Так что нужно больше контента
@Rezedent12
@Rezedent12 11 ай бұрын
А ещё range для перебора коллекций.
@Mercury13kiev
@Mercury13kiev 11 ай бұрын
Циклы while, do/while и do/until (идеал - все три) - это три кита, связанных… с человеческим языком. Надо прикинуть устройство алгоритма на родном языке, а потом переписать на компьютерный. Когда do/until превращается в do/while по законам де Моргана, код может терять читаемость. Цикл for - это т.н. цикл со счётчиком. Да, это while, но он подразумевает пару новинок. 1) Завести при желании переменную-счётчик, которая будет жить в теле цикла и не уйдёт за его пределы. 2) Функция «+1» находится за пределами тела, чтобы можно было пользоваться оператором continue. Этот оператор в Си крайне мощен, но и ошибкоопасен. Цикл foreach - это тот же цикл for, покрывающий важный случай. 1) Коллекция сама знает, как её проходить. 2) Коллекцию нужно пройти целиком (возможно, выскочив из цикла где-то по дороге). 3) Сам счётчик не нужен, нужен только элемент. Когда случаи 2 и 3 не выполняются, кое-где сделали настоящую инверсию абстракции - foreach по диапазону. Использовать goto приходится, надо признаться. Правила хорошего тона - недалеко и вперёд, обычно для выхода из нескольких циклов.
@1234567qwerification
@1234567qwerification 11 ай бұрын
А язык Perl написал лингвист, поэтому он ещё ближе к человеческому. И для выхода из вложенного цикла к break добавляется имя метки, которой помечен тот цикл, из которого выходить :)
@Mercury13kiev
@Mercury13kiev 11 ай бұрын
@@1234567qwerification Выход из цикла по метке - это классное дело! Жаль, такого нет в Си с крестами.
@1234567qwerification
@1234567qwerification 11 ай бұрын
@@Mercury13kiev может, добавят ещё :) (Туда уже такого надобавляли...)
@alexnechitailo9003
@alexnechitailo9003 11 ай бұрын
Что за бред! Смысл for не в синтаксичесом сахаре, а в том, что он гарантирует изменение счетчика на каждой итерации. Это очень удобно, если в цикле есть несколько мест, где в ветке условия стоит continue. Я думаю, любой, кто ловил фриз программы, потому, что в цикле while() забывал поставить i++ перед continue, который выполнился где то в if()-е - оценит пользу и удобство for()
@dolsha
@dolsha 11 ай бұрын
Братан, хорош! Давай вперёд! Контент в кайф! Можно ещё? Ваще красавчик!
@KolyaUdav
@KolyaUdav 11 ай бұрын
КАК ЛИД СКАЗАЛ, ТАК ДЕЛАТЬ И БУДЕМ, МЫ НА ИСПЫТАТЕЛЬНОМ СРОКЕ. НЕ ЕБИ ГОЛОВЫ
@AndreyKauf
@AndreyKauf 7 ай бұрын
Очень часто For-ом ты можешь за один проход сделать все преобразования, что тебе нужны, а map-reduce ом ты будешь два раза гонять. Это может быть быть не критично, если коллекция маленькая, но на больших уже будет заметно. Тут у нас получается трейдофф между элегантностью кода и его скоростью
@raztarg4adchadov914
@raztarg4adchadov914 11 ай бұрын
Бро. Красавчик, ещё побольше такого контента. Благодарю за информацию!!!
@Константин-й5ы5б
@Константин-й5ы5б 11 ай бұрын
Согласен со всем, кроме того, что сахар - плохо (в меня полетят камни, и да, я питонист). Ну в чем проблема двух вариаций вайла? Заботой о "новичках" можно пренебречь, к этому привыкнуть за 2-3 issue можно. Но это же очень круто, что можешь писать так, как хочешь (и вот не надо говорить, что питон кринж, у меня на js 6 микросервисов написано, на плюсах год работал, работаю хардкорно под unix'ом, а вторая работа - анализ yocto и biuldroot, так что я разного наелся за профессиональную жизнь))) Но вот в чем проблема сахара? Ну окей, новичку не понятны правила игры - учись и станут понятны. Но программисту, который не хочет драться с ЯП за организацию каких-то базовых приколов... Ну вот хочу писать фор, пишу, хочу писать вайл, пишу, хочу работать с множествами, фроузен множествами, словарями, списками, массивами, деревьями - я с помощью сахара это делаю по щелчку пальцев, как и множественные перегрузки и обилия самоподобных синтаксических конструкций. Просто как будто тема ради темы))) С логикой отказа от сахара или его сокращением можно опять перейти на ассемблер 😐
@ДмитрийРоманов-е1з
@ДмитрийРоманов-е1з 11 ай бұрын
Чет мне кажется там про сахар так плохо не говорили.
@Константин-й5ы5б
@Константин-й5ы5б 11 ай бұрын
@@ДмитрийРоманов-е1з ну как бы да, но я считал посыл из серии, что надо уходить от самоподобных конструкций и тд. Я немного обобщил пример 🙂
@ДмитрийРоманов-е1з
@ДмитрийРоманов-е1з 11 ай бұрын
@@Константин-й5ы5бЭдак мы массивы на словари заменим ))
@Константин-й5ы5б
@Константин-й5ы5б 11 ай бұрын
@user-qp5mu5tc8n я бы не был так уверен, что это чистый динамический массив. Я интересовался этим вопросом минут 20 полгода назад и у меня сложилось впечатление (возможно я хотел, чтобы оно у меня такое сложилось 🙂), что там развернутый список на базе массивов, то есть элементом списка является массив грубо говоря, и эти массивы связаны в список, в котором и адресация индексная работает и в целом меньше приколов с аллокацией памяти, потому что для расширения достаточно просто слтнковать ещё один массив в конец, но супер не уверен, в этом, я не смог найти нормальную литературу по этому поводу. Буду рад, если поделитесь материалом, на базе какой структуры реализован list в python
@-Sergey
@-Sergey 11 ай бұрын
Ребята, которые "Братан, хорош, давай, давай, вперёд! Контент в кайф". Ну включите же голову, напишите что-нибудь от себя. Ну тоска же под каждым видео одинаковые комментарии читать.
@letburnit5017
@letburnit5017 11 ай бұрын
Ребята, которые "Братан, хорош, давай, давай, вперёд! Контент в кайф". Ну включите же голову, напишите что-нибудь от себя. Ну тоска же под каждым видео одинаковые комментарии читать.
@Dyxacm
@Dyxacm 11 ай бұрын
Ребята, которые "Братан, хорош, давай, давай, вперёд! Контент в кайф". Ну включите же голову, напишите что-нибудь от себя. Ну тоска же под каждым видео одинаковые комментарии читать.
@АлександрЛебедев-д7п6ю
@АлександрЛебедев-д7п6ю 11 ай бұрын
Ребята, которые "Братан, хорош, давай, давай, вперёд! Контент в кайф". Ну включите же голову, напишите что-нибудь от себя. Ну тоска же под каждым видео одинаковые комментарии читать.
@TheSnos15
@TheSnos15 7 ай бұрын
любой программист, а не блогер или выпукник курсов, прекрасно знает, что из цикла можно выйти в отличие от мап/редюс/фильтр/вок
@vanyasotnikoff6024
@vanyasotnikoff6024 3 ай бұрын
У меня есть предположение, что у была такая история: вместо опасного goto создали структурированный механизм циклов - while. Потом поняли, что в некоторых случаях удобно писать условие в конце - добавили do while. А еще поняли, что очень часто встречается специальный случай циклов, а именно - итерации по последовательностям. Добавили for. По ходу решили немного расширить возможности for... За все это время все привыкли к этой троице и это стало неким стандартом.
@glenstorm87
@glenstorm87 11 ай бұрын
Расскажите пожалуйста про циклы в Хаскеле 👉👈😊
@surdeus
@surdeus 11 ай бұрын
Готово
@Torn_Shoe
@Torn_Shoe 11 ай бұрын
for нужно потому-что не всегда он должен начинаться с 0, может нам нужно выбрать что-то начиная с 1 элемента, а не с 0, поэтому не всегда его можно превратить просто в while (i < 5) как в примере
@two_choices
@two_choices 11 ай бұрын
Ничего тебе не мешает сделать for(int i =1 ...) и цикл начнется с единицы
@Torn_Shoe
@Torn_Shoe 11 ай бұрын
@@two_choices так я ж поэтому и говорю что нельзя все заменить на while как делает компилятор потому-что каждый цикл служит своей цели.
@Dmittry
@Dmittry 11 ай бұрын
@@Torn_Shoe Так тебе без разницы с чего он там начинается. Цикл for просто объединяет инициализацию, условие и изменение. Ты можешь сделать так: int i = 1; while (i < 5) { делаем_какую_то_хрень; или_не_делаем; i = i +100500; }. И это будет тоже самое, что for (int i = 1; i < 5; i = i + 100500) {} Да, там не обязательно i++ должно быть. У меня другой вопрос, как заменить do-while без костылей с дополнительной переменной isFirstRun?
@OlegTar
@OlegTar 11 ай бұрын
``У меня другой вопрос, как заменить do-while без костылей с дополнительной переменной isFirstRun?`` а в чём проблемам собственно?
@Dmittry
@Dmittry 11 ай бұрын
@@OlegTar А в чём проблема с do-while собственно? В ролике рассказывается, что три вида циклов нафиг не нужны и можно всё заменить одним. Вот у меня и вопрос, как заменить do-while без нагромождения костылей.
@WounderVaflel
@WounderVaflel 11 ай бұрын
Ничего себе, это что, образовательный контент?!!
@vasilevsky_a
@vasilevsky_a 11 ай бұрын
5:57 Автор обкакунькался, вот тебе фор свифтовский, просто синтансис другой for i in 0..
@vasilevsky_a
@vasilevsky_a 11 ай бұрын
(Да, я знаю что по сути идет проход по Range: Sequence интов, и это ближе к проходу по массиву чем к счетчику по семантике, но факт в том что конструкция есть и очень часто используется) просто разработчики языка не стали разделять фор на два типа, как forin и forof в джсе
@sleepyNovember_project
@sleepyNovember_project 11 ай бұрын
Раньше в си плюсах можно было похоже писать, не знаю как с таким сейчас: for each (obj i in coll){} Сейчас актуален и работет такой синтаксис, например для перебора всей коллекции for (auto i : coll){} Так, к слову
@OlegTar
@OlegTar 11 ай бұрын
только в сишном форе, я всё что угодно могу запихать в фор, хоть вызов функции: for (func1();func2(); func3())
@Dmittry
@Dmittry 11 ай бұрын
А можно подробнее, как do-while заменить for или while'ом? Без костылей с новой переменной isFirstRun.
@DeadnWoon
@DeadnWoon 7 ай бұрын
Видимо, просто дублированием кода. Сначала просто текст, потом он же в теле цикла.
@sleepyNovember_project
@sleepyNovember_project 11 ай бұрын
6:34 оно у тебя в документе исходника никуда не разворачивается, так что, да, докапываешься. Если так хочешь использовать один цикл для всего, используй
@ДаняСолоди
@ДаняСолоди 11 ай бұрын
В прологе вообще нет никаких циклов, там работает машина поиска с возвратом, довольно мощная штука
@chakchaky8521
@chakchaky8521 11 ай бұрын
Безсмысленная дичь.
@ЮраН-ь2к
@ЮраН-ь2к 11 ай бұрын
И очень медленная. Помнится, в начале 90-ых была игра "преферанс", написанная на прологе. Так иногда приходилось по 20 минут ждать очередного хода.
@PersonalSmile69
@PersonalSmile69 11 ай бұрын
я так понимаю курс по пограммированию от ЭкстримПанков уже начался, верно?
@alevyts3523
@alevyts3523 5 ай бұрын
Для описания итеративного процесса не нужны специальные циклические конструкции вроде do, repeat, until, for и while. Если реализация языка поддерживает хвостовую рекурсию, то итерацию можно выразить с помощью обыкновенного механизма вызова функций, так что специальные циклические конструкции имеют смысл только как синтаксический сахар.
@ДаниилЕфименко-е7ч
@ДаниилЕфименко-е7ч 9 күн бұрын
Хвостовая рекурсия разворачивается в цикл компилятором. И слава богу, ведь размер стека не бесконечный
@dimankan
@dimankan 11 ай бұрын
Фига себе. Я начал изучать си шарп 3 года назад по плейлистам для маленьких и тупых, думал что много уже чего увидел и прочитал, "repeat:" и "goto repeat", я ещё не видел. думаю надо как-нибудь использовать и взорвать кому-нибудь жёпку:)
@evgeniygorkaviy4690
@evgeniygorkaviy4690 11 ай бұрын
Главное себе не взорвать такой миной.
@АлександрЛебедев-д7п6ю
@АлександрЛебедев-д7п6ю 11 ай бұрын
Ну, если там, где ты работаешь, нормально поставлены процессы, то твой код обосрут на код ревью и просто просто отклонят пока не перепишешь. И скорее всего будут правы: самое удобное что можно на них сделать - быстрый выход из многоуровнегого цикла. Либо свою упоротую версию try-catch. Все остальное прекрасно заемняется условиями, циклами либо вынесением в отдельную функцию. А компилятор еще и оптимизаций докинет сверху.
@qskyisover8153
@qskyisover8153 6 ай бұрын
- Зачем наплодили аж 3 вида циклов? Тем временем Go:
@sweetcapitan5690
@sweetcapitan5690 11 ай бұрын
А что насчет того, что в шарпах for и forEach имеют разную производительность? Про фп, в которых циклов нету by design, можно было бы хотя бы упомянуть. Про ииераторы тоже неэи слова не сказанно.
@ДаниилЕфименко-е7ч
@ДаниилЕфименко-е7ч 9 күн бұрын
Кстати, for и foreach эквивалентны для массивов, jit генерирует одинаковый машинный код
@НиколайМорозов-ы1э
@НиколайМорозов-ы1э 11 ай бұрын
До этого видео использовал в коде только мотоциклы. Спасибо вам!
@vesh95
@vesh95 8 ай бұрын
Фор хорош тем, что если у тебя условия в цикле, то в суматохе кодинга ты не напишешь код, пропускающий инкрементирование аргумента. А вообще да, тот же while получается, да даже do while можно через while выразить
@Golyb_q
@Golyb_q 11 ай бұрын
Что-то я не догнал с чего это "do-while" не нужон. Если замену while на for я еще могу как-то оправдать, мол это ``` for( ; /*условние*/ ; ) { // тело } ``` и это ``` while(/*условние*/) { // тело } ``` по сути одно и то же, то do-while будет просто не удобно реализовывать через for. Например такой код ``` do{ // попросить юзера ввести "5" }while(/*проверить ввел ли он 5*/) ``` Это можно сделать и через for конечно, но тогда так или иначе мы сделаем проверку условия перед тем как сделать первую итерацию цикла. Так же не очень понял как и зачем заменять for на while, ибо в таком случаи ``` int i = 0; while(i < 10) { // тело i++; } ``` переменная i будет доступна и вне цикла, при этом ее инициализацию в цикл не запихать - условие не пройдет
@ЮраН-ь2к
@ЮраН-ь2к 11 ай бұрын
А если всю эту конструкцию засунуть в ещё одни фигурные скобки?
@Golyb_q
@Golyb_q 11 ай бұрын
@@ЮраН-ь2к это сработает, область видимости ограничится) однако по мойму легче все же будет юзать for когда нужен for, а do-while когда нужен do-while)
@vovka_goodwin
@vovka_goodwin 11 ай бұрын
В го вообще один цикл на все случаи жизни :D
@vovka_goodwin
@vovka_goodwin 11 ай бұрын
@dsgnfun751 for
@justafish_
@justafish_ 3 ай бұрын
Можно сначала видео про то, как включить компьютер, а то я каждый раз новый покупаю, когда у старого монитор тухнет
@icesnowy1393
@icesnowy1393 5 ай бұрын
Что делать если нужно выйти из всех циклов находясь во вложенном цикле? Использование меток.
@ДаниилЕфименко-е7ч
@ДаниилЕфименко-е7ч 9 күн бұрын
Вынести циклы в метод и выходить из них return-ом. И никакие метки не нужны
@WewasAtamans
@WewasAtamans 8 ай бұрын
forEach и вправду же тормознутее на хроме, или наконец пофиксили??
@КрутовойАндрей
@КрутовойАндрей 11 ай бұрын
Так, блэть, Я не понял. А куда потерялся НаЩ ЛюБиМеВщЫй "foreach" под обложкой "for"?!?!?!
@ispite
@ispite 11 ай бұрын
он же пометил forin (foreach)
@Павел-ч9к3е
@Павел-ч9к3е 11 ай бұрын
У пхпшников инфаркт жопы) Наш любимый забыли)
@SilentPrayerCG
@SilentPrayerCG 11 ай бұрын
Он превратился в какой-то for in.
@KZVlad1
@KZVlad1 11 ай бұрын
@@Павел-ч9к3е почему именно пхп? он не только там
@mr.e.a.8967
@mr.e.a.8967 11 ай бұрын
А еще for of забыли, атата😢
@petrhelbin8183
@petrhelbin8183 11 ай бұрын
я уже 5 минут смотрю как мышь крутится на проволоке на 0:47 и не могу сдвинуться дальше, я нашел свой цикл в этом видео
@kalmanjudin1336
@kalmanjudin1336 11 ай бұрын
Чел вставил рекламу и прочитал определения циклов😢. Класс!😮 А можно потом про базовые принципы ооп?😊 Спасибо!❤❤❤
@mn4840
@mn4840 11 ай бұрын
...и приправил всё это отборными мемчиками )
@AlexShataev
@AlexShataev 11 ай бұрын
Минуточку! ✋Вы спецификацию циклов читали вообще или нет?
@flokyfloky3404
@flokyfloky3404 6 ай бұрын
Где можно примеры циклов ,для трени взять? Спссибо!
@ktoto4940
@ktoto4940 8 ай бұрын
for позволяет использовать счетчик процессора вместо переменной, что повышает производельность.
@ДаниилЕфименко-е7ч
@ДаниилЕфименко-е7ч 9 күн бұрын
Любой современный компилятор сможет соптимизировать аналогичные while и for в одинаковый ассемблер. Так что это вообще не аргумент
@user-mp7il3je9d
@user-mp7il3je9d 6 ай бұрын
Цикл do while не может заменить два других (про то что они "взаимозаменяемы")
@CultureofSpeech
@CultureofSpeech 7 ай бұрын
Чудесно звучит 🎉 а когда будет рассказ про критическое мышление ?
@ДмитрийБутырин-ж9н
@ДмитрийБутырин-ж9н 11 ай бұрын
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
@Zaborovnik
@Zaborovnik 11 ай бұрын
Истина в любимом нами машинном языке, процессор имеет только функции перехода, которые могут быть либо безусловные, либо зависящие от статуса флажков последней операции, взаимодействующей с флагами. С их помощью реализуются как циклы, так и ветвления. Если мы говорим о первых, циклы можно реализовать как раз таки тремя способами, причем третий является разновидностью двух последних. 1) DO - пишется метка, потом исполняется «тело цикла», в котором существует команда, изменяющая состояние флажков, потом идёт команда перехода, зависящая от состояния последних (например, флаг нуля - результат функции вернул слово из нулей), выполнение условия заставит программу выполняться с метки, пока условие не будет нарушено, что позволит машине перейти на следующую строчку кода 2) WHILE - создается начальная метка, далее - команда условного перехода, ведущая на метку за телом цикла. Если условие не выполняется, машина будет выполнять следующий за командой перехода код, пока не дойдёт до метки безусловного перехода к начальной метке. 3) FOR - предварительно до первых двух блоков выделяется переменная, которой присваивается значение требуемого количества циклов, далее в теле цикла в конце мы пишем команду вычитания с изменением флажков, именно результат этой команды будет определять, как себя переведёт команда условного перехода. - Приблизительно так, если есть неточности, прошу в комментарии.
@ЮраН-ь2к
@ЮраН-ь2к 11 ай бұрын
Вообще-то в машинном языке ещё есть вызовы подпрограмм и возвраты из них. А также вычисляемые косвенные переходы и косвенные вызовы подпрограмм. То есть возможен оператор case, не содержащий проверки условий, а одной командой переходящий на вариант исполнения ветки.
@lolkek.supergut
@lolkek.supergut 11 ай бұрын
А как правильно - одновременно или одновременно?
@НиколайНиколаев-ю6п
@НиколайНиколаев-ю6п 11 ай бұрын
одновременно
@АлексейСаныч-ц2л
@АлексейСаныч-ц2л 11 ай бұрын
у программистов правильно будет - паралелльно
@zmirk
@zmirk 11 ай бұрын
Да я с помощью GOTO 23 года назад первую игру написал на бэйсике... ээх, были времена.
@SilentPrayerCG
@SilentPrayerCG 11 ай бұрын
Еще go sub был, но он уже забыт... (наверное, я хз на самом деле)
@ЮраН-ь2к
@ЮраН-ь2к 11 ай бұрын
@@SilentPrayerCG Ну, это вызов подпрограмм в бейсике. Как в PL/1 CALL , или в фортране. Люди тогда ещё не догадывались, что вызывать подпрограммы можно просто по их имени, а не специальным оператором.
@SilentPrayerCG
@SilentPrayerCG 11 ай бұрын
@@ЮраН-ь2к я знаю что это, я к тому что, не уверен остался ли этот рудемент в каких-то современных языках или нет. В vb его уже нет.
@Ruzakisan
@Ruzakisan 11 ай бұрын
я поставлю Hyperfun на звонок если этот комментарий наберет 665 с половиной лайков
@comrade137
@comrade137 11 ай бұрын
Можешь поставить так, только пальцы выпрашиваешь.
@SklerozRu
@SklerozRu 11 ай бұрын
Саундтрек из Горбатой Горы поставь
@_curtman
@_curtman 11 ай бұрын
Я не понял, а о чём видос то?
@paztwel
@paztwel 11 ай бұрын
Типа не используйте циклы для работы с массивами. Или хз, автор чушь какую-то несёт ради рекламной интеграции
@GMG_Egor
@GMG_Egor 11 ай бұрын
Менструальные?
@AwowerX
@AwowerX 6 ай бұрын
В DarkBasicPro есть основной цикл Do-Loop. И если внутри (а это необходимо) использовать циклы while, do/while до игра будет лагать жёстко. Поэтому без for в DarkBasic нельзя заменить while и do/while. Специально написал комментарий чтобы постучать со дна, Basic самый лучший язык в мире.
@DeadnWoon
@DeadnWoon 7 ай бұрын
Существует ещё, к примеру, loop (количество повторов).
@stalker32041
@stalker32041 6 ай бұрын
3:29, а я использую цикл for для чтения файлов... Только цикл for, без блока кода. ... long length = ftell(fptr); fseek(fptr, 0, SEEK_SET); char* buffer = calloc(length + 1, sizeof(char)); for (char* ptr = buffer; !feof(fptr); *ptr++ = fgetc(fptr)); buffer[length] = 0x00;
@SalatikInMyHead
@SalatikInMyHead 4 ай бұрын
🤦🤦 fread(buffer, 1, length, file) 👍
@KZVlad1
@KZVlad1 11 ай бұрын
А куда делся втроой голос? Уже давно его нет, но всё никак не спрашивает никто
@No0ne4ik
@No0ne4ik 11 ай бұрын
Вообще есть три способа выполнить переход: 1. jmp 2. call/ret 3. Прерывания
@nouai
@nouai 11 ай бұрын
так и до r-value l-value дойти можно...
@MIT-js9we
@MIT-js9we 8 ай бұрын
«Как фортран программист без внуков» Я тоже слышал о девушках в легендах, говорят, они и вправду существуют.
@ani_sci
@ani_sci 7 ай бұрын
После изучения Ассемблера в колледже, для меня все ЯП высокого уровня довольно странные. Хотя Erlang тоже было интересно поизучать.
@devilman_01
@devilman_01 11 ай бұрын
Великолепный видос Не смотря на то, что я болею, а сегодняшний рабочий день был особенно сильно нагружен, все равно смотрел(слушал взахлеб)
@incredibleBY
@incredibleBY 11 ай бұрын
6:39 Это не циклы while, do_while, for "говно и не нужны" и идея "сахарить дибильна". А этот youtube-ролик - говно и не нужен, а идея его смотреть, лайкать и рекомендовать дибильна. И причем говноконтент, байтещий людей на холивар и гневные коменты, кочует из одного ролика автора в другой.( и работет-же су-о)😊😂 А по-сути: сахар -это полезно, сахар повышает лаконичность и скорость понимания, уменьшает дублированость. Если кто, как автор, не согласен то пускай пишет высокорувневые приложения целиком на ассембле со своис оператором goto во главе...и идет прямиком на свалку вакансий, его ни кто не наймет, если он хоть заикнется об этом...goto garbage короче
@АлексейАнтонов-п7ц
@АлексейАнтонов-п7ц 11 ай бұрын
Братан, хорош, давай, давай вперед! Контент в кайф, можно ещё? Вообще красавчег!
@2009Spread
@2009Spread 11 ай бұрын
самое зачетное из видоса - это место рекламы :)
@igicava
@igicava 11 ай бұрын
В go это лучше всего сделано. Там только for есть который все задачи выполняет.
@ОлегАндрианов-р7д
@ОлегАндрианов-р7д 11 ай бұрын
Так у циклов всего одна задача и есть
@igicava
@igicava 11 ай бұрын
@@ОлегАндрианов-р7д Да, у циклов только 1 задача - повторять какой-то участок кода. Но оформлять это можно по разному и по-моему в go оформлять циклы удобнее всего.
@НикитаБойков-ж2я
@НикитаБойков-ж2я 11 ай бұрын
Коты забрали всё внимание, пришлось пересматривать)
@ДоминикМухамедзянов
@ДоминикМухамедзянов 7 ай бұрын
получился цикл
@dv3148
@dv3148 11 ай бұрын
Пустое это всё, суета. Займитесь делом
@LLlblKAPHO
@LLlblKAPHO 11 ай бұрын
ниче не понял, какой смысл в видео?
@alexperemey6046
@alexperemey6046 11 ай бұрын
Такой же как всегда - показать рекламу
@AmpiroMax
@AmpiroMax 6 ай бұрын
Брат, братан, мега хорош, видос кайф, впервые на тебя наткнулся, иду пересматривать все видосы и под каждым лайк ставить
@botsynth
@botsynth 11 ай бұрын
Так ведь все по-прежнему пользуются goto. В 99% случаев нарушается структурная парадигма Якопини и все спокойно ставят return внутри блока.
@AlexandroLavichez
@AlexandroLavichez 11 ай бұрын
Чем больше return в функции тем лучше
@sky1nax
@sky1nax 11 ай бұрын
и создают утечку памяти или лаги от работы сборщика
@botsynth
@botsynth 11 ай бұрын
@@sky1nax почему? Какая разница где выходить, если есть нормальный деструктор, смарт поинтер или сборщик?
@sky1nax
@sky1nax 11 ай бұрын
@@botsynth потому что эти макрообертки выполняют часто больше кода, чем сама программа и превращают её в тормозное говно.
@mrilinski
@mrilinski 11 ай бұрын
4:43 А как реализовать while через for?
@igor-sukharev
@igor-sukharev 11 ай бұрын
Не рассказал про "ошибку на единицу" и промежуточный выход из цикла
@igor06991
@igor06991 11 ай бұрын
8:40, ты просто угараешь и утрируешь? Ну да, скорее всего. Типо множество факторов ещё нужно учесть. Но всё-таки про солнышко не в тему, у проца TDP не бесконечный, какие-нибудь 120Вт потолок, если система охлаждения способна отвести 180Вт ей слегка пофиг будет на солнышко и проц так и будет работать на максимуме, если только разница в температуре не будет 100° из 105 против 60ти, тогда разгонный потенциал для стабильной будет повыше у проца... Вот только турбобуст, это не разгон, так что он просто выдаст свою фиксированную частоту для условных 120Вт, если проц уже деградировал за годы работы на 100°ах, то тупо перегрузка или синий экран могут вылететь. Если нет, то будет работать на этих частотах, которые как раз предусматривают про запас под любой сценарий и любое качество конкретного чипа
@ЧувакИзКосмоса
@ЧувакИзКосмоса 11 ай бұрын
Про второй итог: изпользуя map, filter и т.п., опираемся на самописные функции через def F(...) или функции сторонних библиотек.
@ДанилаИльичев-д6ы
@ДанилаИльичев-д6ы 11 ай бұрын
У цикла for есть особенность: там continue не пропускает инкрементацию счетчика. Если сделать continue в while, то пропустится весь остаток итерации (включая, скорее всего, инкрементацию счетчика, которую обычно ставят в конце), а если сделать continue в for, то пропустится весь остаток итерации, но инкрементация счетчика все равно произойдет. Да, это не шибко какая мощная разница и в целом можно в while самостоятельно организовать такое же поведение, но придется подумать на одну секунду больше. А думать мы не любим
@AlekSanAndreas
@AlekSanAndreas 11 ай бұрын
forEach не сможет быть полной заменой for in, так как в forEach как минимум нельзя запихать операторы управления потоком (break, continues)
@OlegTar
@OlegTar 11 ай бұрын
forEach - это синтаксический сахар над паттерном Итератор, это другая тема.
@victor_zimin
@victor_zimin 11 ай бұрын
Я вот что-то не понял, а как избегать goto если в большинстве современных ЯП этой конструкции даже нет.
@kuklama0706
@kuklama0706 11 ай бұрын
А никак, компилятор все равно наделает goto в машинном коде.
@YS-sw1xu
@YS-sw1xu 11 ай бұрын
А можно пузырьковую сортировку запилить на while? 🤔
@OlegTar
@OlegTar 11 ай бұрын
можно. while и for - по сути одно и то же. Я могу в for не инициализировать переменные и не инкрементить, т.е. оставить 1 и 3 заголовки пустыми. i = 0; for (; i
THE MOST FREQUENT MISCONCEPTIONS ABOUT OOP
19:37
ExtremeCode
Рет қаралды 563 М.
Ты должен писать плохой код
10:41
ExtremeCode
Рет қаралды 462 М.
СИНИЙ ИНЕЙ УЖЕ ВЫШЕЛ!❄️
01:01
DO$HIK
Рет қаралды 3,3 МЛН
Enceinte et en Bazard: Les Chroniques du Nettoyage ! 🚽✨
00:21
Two More French
Рет қаралды 42 МЛН
1% vs 100% #beatbox #tiktok
01:10
BeatboxJCOP
Рет қаралды 67 МЛН
Как я УСТАЛ работать программистом
7:29
Я СОЗДАЛ 4 ИГРЫ НА 4 ДВИЖКАХ - КАКОЙ ДВИЖОК ЛУЧШИЙ?
7:30
Великие создатели
Рет қаралды 45 М.
Чистый код не существует
8:04
ExtremeCode
Рет қаралды 227 М.
Есть только 3 ситуации для РЕКУРСИИ
10:03
Язык опередивший своё время
9:35
ExtremeCode
Рет қаралды 135 М.
Как наука победила религию
17:02
Предел развития НЕЙРОСЕТЕЙ
18:53
Onigiri
Рет қаралды 253 М.
Прекрати задрачивать алгоритмы
7:46
ExtremeCode
Рет қаралды 166 М.
СИНИЙ ИНЕЙ УЖЕ ВЫШЕЛ!❄️
01:01
DO$HIK
Рет қаралды 3,3 МЛН