1. C++ / Говнокод #16429

    +50

    1. 1
    2. 2
    3. 3
    []() { std::function<int(int)> foo = 
               [&foo](int k) { return k == 1 ? 1 : k + foo(k-1); }; 
               return foo; }()(3)

    Как написать рекурсивную лямбдру на крестах?

    Запостил: TarasB, 26 Июля 2014

    Комментарии (100) RSS

    • я по старинке через структуры делаю
      struct {
      	int operator()(int k) { return k == 1 ? 1 : k + (*this)(k-1); }
      } lam;
      а тут пиздец накладно
      Ответить
    • Тарас опять чем-то закинулся?
      Ответить
      • я вчера перепрошёл хулиона под OMD, мне понравилось, короче надо продолжать тему 3д-игор
        Ответить
    • Запили себе Y-комбинатор.
      Ответить
    • Тем временем, люди бегут из крестов:
      http://www.fontanka.ru/2014/07/26/035/
      Ответить
    • В коде первая и третья буква моего ника.
      Ответить
      • В каком месте? Вроде бы всё законно.

        P.S. А тьфу, реально UB - foo вернули и стековый фрейм разрушился, а значит foo внутри лямбды теперь указывает на хуиту.
        Ответить
        • Царю виднее, чем нам, простым смертным, что там в стеке.
          Ответить
          • потому что царь - он сам немножечко в стеке
            Ответить
            • А его не раздавит при переполнении?
              Ответить
              • Кто? Карманный лев?
                Ответить
                • Стек, как в фильме «Двадцатый век начинается».
                  Ответить
                  • Ну ты даешь! Кто ж его раздавит? Он же памятник! Максимум яйца отдавит, царю они все равно ни к чему
                    Ответить
                    • Карманный лев без еды останется. Не будет же он раздавленными питаться!
                      Ответить
                      • карманный лев живет в куче. Когда память текет - лев негодует. и когда памяти вытекает много, лев, не выдержев наглости, вцепляется в яйца кодера. А питается он высвобожденной памятью кучи
                        Ответить
                        • Не завидую я тем, кто пишет на Яве, ведь там gc может и не сработать...
                          Ответить
                          • В шарпике тоже. Многие жаберы и шарпеи могут и не знать о льве. Но те, кому он куснул, уже никогда его не забудут.
                            Ответить
                            • Кто не был, тот будет. Кто был, тот не забудет.
                              Ответить
                              • Карманный лев сидит на куче
                                И память нежно стережет
                                Как потечет - мрачнее тучи
                                Глаза красны и в пене рот

                                Одным прижком в карман влетая
                                Как будто спушен был курок
                                В яйцо впивается зубами
                                Чтоб программисту был урок
                                Ответить
              • Стек - это, емнип, палка. Как он может раздавить?
                Ответить
                • Телескопическая палка
                  Ответить
                • Со стиком путаете:
                  http://slovari.yandex.ru/stack/перевод/
                  http://slovari.yandex.ru/stick/перевод/
                  Ответить
                  • стик - это такая херня на геймпаде, с которой не возможно прицелиться.
                    Ответить
                  • Ниче я не путаю :)

                    http://ru.wikipedia.org/wiki/Стек_(трость)
                    Ответить
                    • любопытная категория
                      Ответить
                    • Стек - это когда что-то стекает.
                      Ответить
                      • Не совсем:
                        - во-первых в совершённой форме: не стекает, а уже стекло;
                        - во-вторых через ё, а не через е.
                        Ответить
                    • осталось узнать раб борманд или госпожадин
                      Ответить
                      • буквы говорят, что 'раб' может из 'борманд'а получиться, с господином сложнее
                        Ответить
                        • Борманд - бром дна
                          Ответить
                          • раб дном
                            Ответить
                          • http://m.youtube.com/watch?v=DZsWKM3KUxA
                            Ответить
                            • Так вот как звучат лекции по матану для гуманитариев.

                              А вообще - не зачет. Вклейка сразу видна. материал откровенно бредовый - можно было и тоньше.
                              Ответить
                          • Борманд это демон Бормана. Борман вызвал daemon().
                            Ответить
                            • >демон Бормана
                              Прям как демон Максвелла.
                              Ответить
                              • Только Бормана

                                Не один, а целых три!

                                http://vk.com/people/Demon_Borman
                                Ответить
                              • > Прям как демон Максвелла.

                                Пропускает хороший код, а плохой код задерживает.
                                Ответить
                                • Но так, как его не существует, весь код примерно одного качества говна
                                  Ответить
                                • Демон Максвелла наверняка упрётся в принцип Гейзенберга. Интересно, есть ли что-то похожее в отношении кода?
                                  Ответить
                                  • Есть
                                    cat /dev/urandom | gzip --best | grep WindowsXP >> /root/test

                                    из http://ithappens.ru/story/5109
                                    Ответить
                                  • Каким образом упрется?
                                    Ответить
                                    • @kegdan
                                      > Каким образом упрется?
                                      Нужно знать скорость и положение частицы.

                                      @3.14159265
                                      > совершение работы против внешних сил
                                      Ага, и КПД измерять в тысячах строк в день.
                                      Ответить
                                      • А ничего что там уже квантовые скачки и нелокальность? Частицы будут переходить между сосудами без ведома демона, просто телепортируясь в другой сосуд- раз, влияя на одну молекулу, демон будет влиять на ВСЕ - два. Тут демон требует доработки, он только в пределах МКТ работает
                                        Ответить
                                        • Это в каком газе такое?
                                          Ответить
                                          • //-*)

                                            Видимо в том же, в котором действует неопределенность Гейзенберга. А где ты такой газ нашел - я не знаю
                                            Ответить
                                            • Судя по всему, говнокод уже достаточно ночнойтут только мы с тобой остались, довай попиздим о чём-нибудь отвлечённом.
                                              Ответить
                                              • Задавай тему, че)
                                                Ответить
                                                • Поскольку про хохлов мерзопакостно, предлагаю обсудить русскую поэзию, скажем, двадцатого века.
                                                  Я вот упорно не могу понять тягу тупых пёзд к какой-нибудь Цветаевой. Да их там десятки, каких-то поэтишек, половина эмигрантов, половина упоротых.
                                                  Ответить
                                                  • Сам не люблю поэзию цветаевой, ахматовой. Сколько ни читал - херня какая то. Я сам часто сижу на современных форумах, потой такой бред попадался, я их критиковал. А потом посмотрел поэтов 20 века и немного охуел от того, что у них тот же бред, только в профиль. Я все таки стихи воспринимаю через пушкина, некрасова лермонтова и высоцкого) 20 век- даже не знаю что сказать. Кстати, сейчас мода пошла на белые стихи. Например хайку (в японском тупо нет рифм) но наши полюбили, потому что круто. Мне кажется, если бы в японском были рифмы хайкуисты сделали бы массовое сеппуку
                                                    Ответить
                                                    • Во-во, но причины такой популярности мне вообще непонятны. Такое ощущение, что это балаганная мода, а сами любители не понимают этих стихов. Да и вообще, когда викижопия говорит, что "выдающийся поэт джвадцатого века", хочется биться о стену. Пусть это и не источник даже.
                                                      Ответить
                                                      • северянин ака король поэтов крал стихи как кучи говна, по 10 в день, причем иногда 12 стопным ямбом (что само по себе гоуно)
                                                        Ответить
                                                        • > по 10 в день
                                                          "1000 строк в день", - донеслось откуда-то из моей головы.
                                                          Ответить
                                                          • ))) Если рифмовать "топор - багор-помидор - коридор" можно и больше. Кстати ему тоже за строки платили, как и современным индусам
                                                            Ответить
                                                            • Топор-багор? Ну, это ещё думать надо... Лучше уж глаголы и прилагательные рифмовать. Вот только, как назло, из этого иногда что-то годное выходит.
                                                              Ответить
                                                              • Выходит. Но это моветон среди поэтообразных. Труъ поэтам пох на правила, они и с глагольной рифмой могут доставить, и без нее вовсе. Но чет я на форумах труъ не встречал (а если и встречал они там в изгоях ибо в самиздате царит правило - лизул ты - лизнут тебе, просто так тебе никто писать рецензии не будет. даже плохие)
                                                                Ответить
                                                                • > Но это моветон среди поэтообразных.
                                                                  Вот я, когда что-то такое получается, писать прекращаю, поскольку мне это внушили. А потом смотрю, как некоторые пишут что-то ещё хуже, чем то, от чего я отказался. И рождается багор.
                                                                  Ответить
                                                                  • Поэтообразные пишут что бы потешать ЧСВ и получить внимание. Поэты же пишут потому что не писать они не могут. Если хочется - пиши. Главное обращай внимание на критику конструктивную критику
                                                                    Ответить
                                                        • Ну ладно, я ещё могу понять самое начало двадцатого века, так сказать, кубизм-авангардизм и прочий модернизм. Это попытка найти стиль, себя, пощёчина общественному вкусу. Но потом-то.
                                                          С другой стороны, лично я не знаю ни одного айтишника, который бы отзывался о данном месте-времени-творчестве с какой-то похвалой. Вот гуманитариев так с десяток.
                                                          Ответить
                                              • И я тут... Только обещал себе спать пораньше лечь, а тут у вас так интересно.
                                                Ответить
                                  • >Интересно, есть ли что-то похожее в отношении кода?
                                    >Демон Максвелла наверняка упрётся в принцип Гейзенберга
                                    Споры и неопределенность на кодревью насчёт коммита (хороший он или плохой).

                                    Первое начало кододинамики:
                                    Количество сил, потраченное программистом, идёт на изменение внутренней структуры кода и совершение работы против внешних сил.

                                    Второе начало кододинамики:
                                    Энтропия кода изолированного проекта на С++ не может уменьшаться.
                                    Ответить
                                    • 3 закона динамики проекта

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

                                      2 Сила, с которой проект движется к релизу, равна качеству программиста умноженное на ускорение, переданное его жопе (F=ma)

                                      3 Если у программиста есть 2 проекта, то при придании его жопе ускорения в строну одного, интерес к другому падает на туже величину (ma=-ma)
                                      Ответить
                                      • >> Энтропия кода изолированного проекта на С++ не может уменьшаться.
                                        > если забить на проект его качество либо останется неизменным либо будет равномерно и прямолинейно катиться в сраное говно

                                        С хорошей точностью один и тот же закон, а расписали на две области физики :)
                                        Ответить
              • До DEP'а - раздавило-бы.
                А так, только выплюнет.
                Ответить
    • В 'J' есть глагол $: —– self reference:
      (1:`(* $:@<:) @. (>&1)) 0
      1
         (1:`(* $:@<:) @. (>&1)) 7
      5040
         
         NB. или литераьурненько:
         load 'primitives'
         NB. обязательно нужно использовать наречие fix (f.), которое подставит значение именованного глагола в определение,
         NB. а иначе selfreference будет ссылатся не на глагол, в котором содержится, а само на себя
         (1: tie (times selfreference fix at decrement) agenda (largerthan bond 1)) 0
      1
         (1: tie (times selfreference fix at decrement) agenda (largerthan bond 1)) 7
      5040
      Именно поэтому я за 'J'.
      Ответить
    • В S" Forth" есть recurse, его нужно использовать во всех рекурсивных определениях, не только в :noname, потому что при создании нового определяния оно недоступно для поиска в словаре:
      :noname  ?dup if dup 1- recurse * else 1 then ;
      0 over execute .
      7 swap execute .
      https://ideone.com/HEan9S

      Именно поэтому я за S" Forth".
      Ответить
      • Вот почему они назвали это слово then а не endif?
        Ответить
        • Чаке говорил что так понятней, типа то, что находится за THEN будет исполнено всегда.

          Вообще конечно хз, что у него в бошке творится.

          В gforth'е, например, объявлен ENDIF как синоним для THEN.
          Ответить
          • А, т.е. этот then надо читать не как часть условия, а просто как связку между предложениями. Makes sense.
            Ответить
      • Может быть ты ещё и за «Arch Linux»?
        Ответить

    Добавить комментарий