Почему функции высшего порядка медленные? - list vs sequence

Поділитися
Вставка
  • Опубліковано 15 жов 2020
  • Сегодня мы проведем эксперимент и попробуем разобраться - почему функции высшего порядка работают медленнее чем обычные циклы. Чем sequence отличается от list и как он помогает исправить проблему быстроты работы.
    С вами Илья Никсан и мы учим язык программирования Kotlin с нуля для начинающих программистов
    Если ты хочешь быстро научиться писать код на языке котлин то смело подписывайся и следи на новыми видео на канале
    Про меня:
    Меня зовут Илья, мне стукнуло 30 лет
    С 20 лет я плотно занимаюсь программированием и всем что связано с айти. В 2010 году я начинал карьеру как Android разработчик в QIWI. За прошедшие 10 лет я побывал во многих ролях: от джуниор-программиста, был тимлидом, менеджером, техническим директором. Успел поработать на фрилансе, в студии разработки и даже в Яндексе.
    Ссылки:
    nixan.org/
    / nixan
    / nixan

КОМЕНТАРІ • 24

  • @funnymoment9164
    @funnymoment9164 3 роки тому +5

    Спасибо за полезные видео! Было бы еще круче, если комментировал каждое действие во время написания кода.

    • @SeemsNerdy
      @SeemsNerdy  3 роки тому

      тогда это будет унылое. полезнее просто репозиторий с кодом себе сливать и экспериментировать

  • @bobhope8551
    @bobhope8551 2 роки тому

    Спасибо, отличный канал и подача

  • @user-sp3pw9sf3u
    @user-sp3pw9sf3u 3 роки тому +7

    Ведущий красавчик 😁

    • @SeemsNerdy
      @SeemsNerdy  3 роки тому +1

      Жена красавчик

  • @user-ij7gt8rk7c
    @user-ij7gt8rk7c 3 роки тому

    Спасибо огромное за Ваш труд, очень полезное видео. Жаль, что только сейчас наткнулся на него

  • @user-zr9zv6jr6w
    @user-zr9zv6jr6w 3 роки тому +1

    Спасибо за видео! Мне кажется, что, раз уж начали сравнивать list и sequence, то нужно было бы затронуть вопрос о минусах использования sequence, они же по-любому есть)) Т.е. когда их использовать нецелесообразно/излишне/вредно для той же самой производительности, например, потребления памяти или ещё в чём-то. Ведь если бы они были идеальными, никто бы листы не юзал.. ;) Мануалы курить - by lazy))) Мб, в каком-нибудь из следующих видео коснёшься этого вопроса? А так - ок, хороший показательный простой пример, хорошие пояснения. Лайк))

  • @alexhlo
    @alexhlo Рік тому

    супер круто, спасибо

  • @s.a.3408
    @s.a.3408 3 роки тому +6

    Спасибо за отличное видео!
    Посмотрев его, я стал чуточку умнее, а значит день прожит не зря)

  • @viktor_zverev
    @viktor_zverev 3 роки тому +1

    вижу Вы програмируете на Kotlin, подскажите его преимущества перед Java? может видос на эту тему созреет.

    • @SeemsNerdy
      @SeemsNerdy  3 роки тому

      Видос обязательно созреет, но чтоб не томить, по большому счету это все вкусовщина и немножко лицензионных историй. Кароче лучше самому попробовать :)

    • @VoidObj
      @VoidObj 3 роки тому

      @@SeemsNerdy обязательно в этом видео пройдитесь по замечаниям из статьи на хабре "Почему Kotlin отстой" :)

    • @SeemsNerdy
      @SeemsNerdy  3 роки тому +1

      Не буду. Холивар надо обходить.

  • @danielmilyutin9914
    @danielmilyutin9914 2 роки тому

    Интересно, что будет на rust или ranges C++?

  • @dmitriyobidin6049
    @dmitriyobidin6049 2 роки тому +1

    Не совсем понятно, зачем такая сложность в обычных циклах. Ведь по сути у нас задача посчитать идут ли подряд 20 текстовых символов. Т.е. мы можем считывать файл посимвольно, и если это подходящий символ просто добавлять его в аккумулятор, если не подходящий - очищать аккумулятор и искать следующую последовательность. На условном псевдокоде:
    reader = new LazyReader("File.txt");
    while ((c = reader.read()) != EOF) {
    if(c in list( " ", "
    ", "
    " ) {
    result.clear();
    } else if (c not in list( ".", ",") {
    result.add(c);
    }
    if ( result.length >= 20 ) {
    break;
    }
    }

    • @vadim0872
      @vadim0872 2 роки тому

      Вряд-ли это будет быстрее, т.к. считывать данные пачкой, гораздо производительнее, нежели посимвольно.

  • @mrmm4811
    @mrmm4811 3 роки тому +1

    Код пишется в ритме стриптиза

    • @SeemsNerdy
      @SeemsNerdy  3 роки тому

      Расслабься и получай удовольствие :)

  • @Valerii07
    @Valerii07 3 роки тому +1

    Проблема всех "учителей" что они знают материал, но не умеют учить. А когда ученик плохой высокомерно сказать ты туй халявщик еще прожуй за тебя да в рот положи и в конце это не твое. В результате аудитории кое как разбирающихся 100чел а остальные 10000 желающих отсеиваются. Не понимают: что не понимают ученики, как это подать на чем акцент сделать, и как закрепить. Соответственно ты можешь быть супер разработчиком но плохим учителем. Учитель это тоже талант. Вот например говорите читайте даташит, хорошо открываю читаю - по мне это филькина грамота с малой информацией про тот же сиквенс, что он оказывается такой волшебник может не весь файл загружать. Я читая даташит могу лишь догадываться что может та или иная ф-ция, кое как применить, тем более в сочетании с др ф-ями. В результате тратится куча времени года на эксперименты додумки поиск пока вся эта хрень уляжется в голове, а потом нужно деньги на обучение брать и видя перед собой не радужную перспективу бросаешь свою первую любовь. Я чисто все додумками экспериментами познаю клочками там инфу выдергну то там тратя куча времени, и мечтаю что есть где то материал который все сгруппирует составит общую картину и зачем это нужно и правильно подаст. Сраные корутины нигде не видел толком как и где применять ту или иную да еще инфа противоречащая делаю вывод что сами писаки не полностью владеют материалом и приходится еще тратить время на фильтрацию. "Учителя" выражаются словами которые еще надо расшифровать и еще надо по ним пройтись по даташитам и это все накладывается в ободранный массив знаний ...........

    • @SeemsNerdy
      @SeemsNerdy  3 роки тому +2

      Забудь, такого материала нет, все надо вкуривать самому всегда. А ну и да, никто не говорил что будет легко.

  • @VoidObj
    @VoidObj 3 роки тому

    Блин, я не могу понять)) Почему половина разработчиков на андроид работают за маками? :) Есть же крутые виндовые ноуты.

    • @SeemsNerdy
      @SeemsNerdy  3 роки тому

      Потому что macos - unix совместимая, винда пока нет, но бежит в эту сторону

    • @tyt66612
      @tyt66612 Рік тому

      @@SeemsNerdy а какие преимущества в этой совместимости?)