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

    +8

    1. 1
    if(!(a - b))

    Запостил: LispGovno, 12 Июня 2014

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

    • У нас в проекте с флоатами это юзается и как-то оно в студии даже работает и алгоритм не ломается.
      Ответить
      • > и как-то оно в студии даже работает
        Везение :) С -ffloat-store скорее всего и в гцц перестанет ломаться.
        Ответить
        • товарищ борманд, дико извиняюсь, но не могу понять один пример, не могли бы помочь?
          on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
          (.*.) `on` f = \x y -> f x .*. f y


          f - это (a -> b)
          f x .*. f y - это (b -> b -> c)

          но чето я не могу понять как это собралось. или типа любой бинарный оператор можно инфексом юзать?

          получается мы (b -> b -> c) -> (a -> b) отразили на (.*.) `on` f но я нихрена не пойму как и зачем `on`
          Ответить
          • a `on` b это то же самое, что и on a b. Т.е. любую функцию с джвумя и более аргументами можно юзать как оператор, обернув ее имя в ``.

            А (.|.) a b - то же самое, что и a .|. b. Т.е. любой оператор можно юзать как бинарную функцию, обернув его имя в ().

            (.*.) `on` f = \x y -> f x .*. f y можно переписать как on g f = \x y -> g (f x) (f y), если операторы смущают.
            Ответить
            • ясно, спс. На самом деле я пока формулировал вопрос почти разобрался. Но на самом деле мне в это примере больше всего понравилось, что если что то не юзается его можно не пользовать. То есть мы матчим только (b -> b -> c) -> (a -> b)
              Ответить
              • > если что то не юзается его можно не пользовать
                Это каррирование. Аргументы все-таки не совсем не используются... просто если "недовызвать" функцию, то получится не результат, а функция, принимающая оставшиеся аргументы. Примеры в духе (*2) я думаю ты уже видел. Тут принцип такой же.

                P.S. Ты не поверишь, но в хаскеле (как и в лямбда-исчислении) все функции принимают только один аргумент. И f x y = x + y просто сахарок для f = \x -> \y -> x + y
                Ответить
                • это понятно, но обычно его приминение сводилось до
                  let g = (+)2
                  то есть так я первый раз вижу
                  у меня немного блестят глаза, это от давно забытого чувства матана первого курса - что меня ипут в мозг, но мне это нравится.
                  Ответить
                  • О, тут открылся клуб функционального программирования? Надо вбросить.

                    Собрались языки и поспорили, кто из них бесконечность осилит. Плюсы говорят:
                    -- А давайте запилим массив из двух элементов, первый сделаем почти бесконечным, а второй - обычным числом. Потом выведем второй - коли бесконечность посчитали, то и второй посчитается.
                    -- Хорошо, - сказал Хаскель. - Проще простого.
                    -- Фи, - воскликнула Решётка, - у меня Ынтерпрайз, что мне математика?
                    -- Ну, без разговоров, начинаем, товарищи, - сказал Идеоне и выстрелил из стартового пистолета.

                    Тужилась Решётка и не смогла. Не успела. http://ideone.com/5LgSPa Ынтерпрайз не терпит лени. Плюсы усмехнулись в усы и мигом всё посчитали. http://ideone.com/h984rh Хаскель смотрел-смотрел, да как завопил:
                    -- Посоны, это же не математично! А я в две строчки могу: http://ideone.com/7ZLFWE И бесконечность у меня настоящая в отличие от вас, олухов.

                    -- Ну, братец Хаскель, могёшь, - Плюсы радостно похлопали Хаскеля по плечу. - Но тут есть одна проблемка. Мы в выражении бесконечность не использовали.
                    -- Хорошо, - снова сказал Хаскель. - Вот сейчас возьму да использую.
                    Тужится-тужится, а посчитать и не может. http://ideone.com/cDvLpa Уже и Int коротюсенький взял, не бесконечный, а оно всё равно не считается.

                    Плюсы же докурили трубку и молча всё сделали. http://ideone.com/EHkpxy

                    А теперь, юный читатель, скажи нам, кто здесь Главный Функциональный язык?
                    Ответить
                    • Говно ваши языки. То ли дело J.

                      _
                      _
                      Ответить
                    • 0*inf? Прохладная история. А посчитать на хаскеле бесконечность как на плюсах, не? Вот как посчитаешь и он не осилит - тогда и будешь сомневаться в этом языке.
                      Ответить
                      • Перевёл как мог: http://ideone.com/rSNpbJ
                        Даже вариант без условия http://ideone.com/PhH9EY в моём случае не прокатил.

                        На самом деле, я хаскель не знаю, а только кукарекаю в комментариях. Потому и код такой (но в случае плюсов говнокод намеренный: там компилятор не осилил рекурсивную бесконечность, и пришлось городить циклы).
                        Ответить
                        • чет я не понял что ты хотел.
                          Ответить
                          • Изначально хотел найти случай, для которого компилятор плюсов соптимизирует, а компилятор неплюсов - нет.
                            А конкретно тут я пытаюсь "посчитать на хаскеле бесконечность как на плюсах" (см. http://ideone.com/EHkpxy)
                            Ответить
                            • https://ideone.com/gNOjOk

                              вроде так дословный копипаст (с элементами не имеющими смысла)
                              Ответить
                              • inf :: Integer ? Что-то маловато выходит.
                                http://ideone.com/wvC4o1
                                Ответить
                              • Хотя, ладно. Засчитано.
                                https://ideone.com/llcnEy
                                Но тот самый вопрос остаётся: как посчитать на хаскеле как на плюсах? Очевидно, рекурсия и создание списков - это не цикл. А можно было рассматривать эквивалентность формул и сразу перемножить нужные числа.
                                Ответить
    • да пох, пасаны, кто открытие будет смотреть?
      Ответить
      • какое?
        Ответить
        • Чемпионат мира по футболу 2014
          Ответить
          • Там сейчас фанаты все крушат в Бразилии. Предсказания моей тёти из почти одноименного фильма про диких обезьян начали сбываться.
            Ответить
            • Первый матч таки Бразилия - Хорватия. +100500 к твои предсказаниям
              Ответить
              • Да это не предсказание. По CNN мне доложили:
                http://www.dni.ru/sport/2014/5/16/270516.html
                Ответить
                • А вообще я с них фигиваю. Затраты слишком большие на чм, поэтому они решили жечь всё на своем пути, чтобы их увеличить. Я подозреваю там вообще большая часть - частные деньги, а не деньги правительства. Какого хрена частники должны тратить деньги на бомжей:

                  > Протестующие там требуют, чтобы им построили дома
                  Мне тоже несколько постройте, ага.
                  Ответить
                  • я так думаю прибыть от туризма покроет расходы правительства
                    Ответить
                    • да ещё инфраструктура останется
                      это же не в сочи никому не нужного говна настроили в долине
                      Ответить
                      • Жители России, глядя на жителей Бразилии подняли шум и требуют, чтобы им построили дома олимпийского качества. Роспильщики согласились, потирая руки ;)
                        Ответить
            • > Предсказания моей тёти
              в смысле "мало ли в бразилии педров?"
              согласен
              Ответить
      • Нз насчёт открытия, но сам матч посмотрю. Как и большую часть матчей после него)
        Ответить
        • за кого будешь болеть когда Россия вылетит?
          Ответить
          • cleaned
            Ответить
            • есть хоть что в чем ты не ущербен?
              Ответить
              • cleaned
                Ответить
                • весов? ты еще и русским не в ладах?)

                  если тебе неважно мое мнение - не отвечай. Но ты же не можешь не плюнуть напоследок. тебе кажется, что есть ты не ответишь, то я победил.
                  Ответить
              • >есть хоть что в чем ты не ущербен?
                Его посты меня в последнее время радуют.
                Ответить
                • извиняюсь коли так. Но последнее время он меня раздражает. уж таков я
                  Ответить
          • Не то чтобы прямо болеть, а просто сопереживать) Италия, Германия, Португалия. А ты?
            Ответить
            • да так же. Все по обстоятельствам. Но не за Бразилию)
              Ответить
              • Да уж, после вчерашней пенки точно не за Бразилию
                Ответить
                • судья продажная
                  Ответить
                  • Я вот читаю, словно общаются инопланетные разумы.
                    Ответить
                    • Ты еще и испанию-голандию смотреть наверное не будешь? это же реванш прошлого финала
                      Ответить
                      • я её смотрю по жопорезу
                        и как ни странно - оно работает
                        1-2 уже тем временем
                        Ответить
                        • 1-3
                          Ответить
                          • низложение
                            эх, а я топил за ничейку, чтобы у чилийцев шансов побольше было
                            Ответить
                            • голандцы мстят по черному, наказывают.

                              я за австралию болею, но шансов у них и чилийцев почти нет
                              Ответить
                              • > за австралию болею
                                стремный выбор
                                впрочем, через полчаса в очной встрече даже тебе станет очевидным превосходство креатива над бей-беги
                                Ответить
                            • йохохо! 1-5! вот это прикол!
                              Ответить
                    • > Я вот читаю, словно общаются инопланетные разумы.
                      Они из параллельного мира, в котором люди смотрят ЧМ по футболу.
                      Ответить
                      • Точно-точно. Там ещё в том параллельном мире нового осьминога-предсказателя нашли.
                        Ответить
                        • Головоногово, которого нарисовал Борманд?
                          Ответить
                          • > Головоногово, которого нарисовал Борманд?
                            Можно ссылку? Я чет запамятовал, чего я там нарисовал...
                            Ответить
                            • Это легенда такая http://govnokod.ru/16149#comment235597
                              Ответить
    • Где здесь С++?

      if((!(a-b))+(!!(b-c))+d)

      Задача не сложная, но все же жду от умников перевода этого кода в "логический вид". a,b,c,d - int
      Ответить
      • ps: Ах да, никто не знает откуда ты создал этот тред:
        Это с другого форума из темы:
        (a == b) vs !(a - b)
        Ответить
      • Как-то так? http://ideone.com/kT4daO

        P.S. Не совсем эквивалентно ;(
        Ответить
      • Вот вроде бы полный эквивалент: http://ideone.com/XudGXK
        bool f2(int a, int b, int c, int d) {
            return ((a == b) == (b == c) && d != -1) ||
                (a == b && b != c && d != -2) ||
                (a != b && b == c && d != 0);
        }
        Ответить
        • Ну да. Полностью не проверял, но как-то так.
          Ответить
        • const int v1 = (a==b)? 1:0;
          const int v2 = (b!=c)? 1:0;
          if (v1 + v2 != -d )
          Ответить
          • > Невозможно убрать арифметическую составляющую из кода, где она является центральной темой алгоритма.
            Но ведь я же убрал ;) Правда какой ценой...
            Ответить
            • Как можно было отцитировать то чего нет
              >Невозможно убрать арифметическую составляющую из кода, где она является центральной темой алгоритма.
              Не пойму. Гости не могут править комменты. Или это кто-то пишет анонимно с премиум-акка?
              Ответить
              • > Как можно было отцитировать то чего нет
                Это цитата из параллельного мира :P
                Ответить
                • >Это цитата из параллельного мира :P
                  Ну так дайте уже ссыль на гейдев.
                  Ответить
                  • http://www.gamedev.ru/flame/forum/?id=190051&page=3
                    Ответить
                    • Гейдев - темный брат говнокода. Половина юзверей и там и там сидит.
                      Ответить
                      • Не брат ты мне, гнида крестоблядская.
                        Ответить
                        • Ты когда-нибуд ебал девушку между сисек, гость?
                          Ответить
              • >отцитировать то чего нет
                Ты увидишь, чего нет -. Тени наползут на свет. Ты из самой темноты. Упадешь в зал слепоты
                Ответить
                • Это капец. В очередной раз приходит лиспГумно с крестовбросом и рассказывает кулстори типа "У нас в проекте с флоатами это юзается".
                  Любой кто хоть немного посещал гк твёрдо знает что гумно тянет свои вбросы с гейдева.
                  Но получается презабавнейшая ситуация - кроссфорумное общение. Утверждение с совершенно левого форума оспаривается здесь с цитированием.
                  Нет пути.
                  Ответить
                  • > Утверждение с совершенно левого форума оспаривается здесь с цитированием.
                    Этот guest, судя по всему, был картонажником с геймдева. Вот я ему сюда и отписал. Лень регаться у них, а анонимусов там не уважают.

                    > совершенно левого форума
                    Да ну? Те же лица, только в профиль.
                    Ответить
                    • Я вот к гейдеву никакого отношения не имею вообще.
                      Ответить
                      • А я вот хочу иметь, но как геймдизайнер
                        Ответить
                        • > как геймдизайнер
                          Здраствуйте. Я, Кирилл. Хотел бы чтобы вы сделали игру, 3Д-экшон суть такова... Пользователь может играть лесными эльфами, охраной дворца и злодеем. И если пользователь играет эльфами то эльфы в лесу, домики деревяные набигают солдаты дворца и злодеи. Можно грабить корованы...

                          Что-то мне намекает, что работа среднестатистического геймдизайнера это не совсем не рай, в котором он развалившись в кресле и попивая мартини придумывает игру, а прекрасные нимфы бегают вокруг него с опахалами, а самая обычная работа, с кучей доков, споров с начальством, дедлайнами и прочими радостями жизни.
                          Ответить
                          • ты так говоришь, как будто у нас производят игры, чтобы выборка геймдизайнеров была репрезентативна
                            среднестатистический геймдиз спускает спонсорские деньги в унитаз как раз
                            как и остальная команда, впрочем
                            Ответить
                          • ну так и программист тоже не в шелках. работа как работа. работа фантазией меня прельщает больше, нежели коддингом
                            Ответить
                            • для этого не обязательно мараться о гейдев
                              фантазией можно работать, принимая архитектурные решения на различных уровнях
                              Ответить
                              • я куда не пробовал кодером устроиться меня все на верстку норовят посадить.

                                Ну ничего, щас диплом защищу, хаскелл изучу и... нифига не изменится
                                Ответить
                                • >кодером
                                  >архитектурные решения на различных уровнях

                                  doing it wrong
                                  Ответить
                                • а что ты хотел? студенту много ответственности не дашь

                                  на хаскеле работу не найдешь, только кругозор расширишь
                                  а на шарпе своем - найдешь, и без верстки
                                  Ответить
                                  • Можно попытаться продвигать идеи F#
                                    Ответить
                                    • все бабло на разработку в россии тратится на задачи автоматизации
                                      а именно разработка с нуля или интеграция друг с другом больших и малых систем
                                      которые, правильно, клиент-серверные системы с редкими девиациями

                                      F# тут как корове седло
                                      Ответить
                                  • Facebook выпустил либу на хаскеле для доступа к ресурсам.
                                    Ответить
                        • Я вот тоже хочу иметь, но как дирехтар.
                          Ответить
                • > Ты увидишь, чего нет -. Тени наползут на свет. Ты из самой темноты. Упадешь в зал слепоты

                  Квест из Diablo I?
                  Ответить

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