1. Objective C / Говнокод #14315

    −87

    1. 1
    2. 2
    3. 3
    while ([self string:[commentText copy] containsString:@"<br>"]) {
                        commentText = [commentText stringByReplacingOccurrencesOfString:@"<br>" withString:@"/n"];
                    }

    No comments :)

    Запостил: itruf, 04 Января 2014

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

    • Не мог бы кто-нибудь переписать первую строчку на какой нибудь С-подобний язык? Со второй все более-менее ясно, но первая как-то у меня не сложилась, ибо Objective-C пока не довелось изучить.
      Ответить
      • Имхо что-то типа такого (псевдокод):
        while (this.stringContainsString(commentText.copy(), "<br>")) {
            commentText = commentText.replace("<br>", "/n");
        }
        Могу ошибаться, я на объективном си не кодил.
        Ответить
        • Удаление строка типа <b<br<br><<br>br>><<br>br>r>?

          Хотя нет, на \n заменяется.

          это как старая добрая сортировка - находим неопорядочную пару - упорядочиваем - начинаем заново.
          Ответить
          • Но ведь /n не даст создать новую такую пару. Поэтому все допустимые пары будут заменены уже после первого прохода (судя по stringByReplacingOccurrencesOfString оно заменит все вхождения). И while вместе с проверкой тупо не нужны ;)
            Ответить
            • Нинужны.

              Что за наркоманские имена...
              Ответить
              • > Что за наркоманские имена...
                Чтобы читалось как английский текст... Ну по крайней мере так утверждают те, кто с этим работает.
                Ответить
                • ага

                  что то типа
                  private static WhichReturnsSome<string> methodNamedSubsstringFinderAndReplacerWithNextArguments 
                            (string namedInputStringAnd, string namedSubstingForReplace)
                            {...}
                  Ответить
                  • Ну вот поэтому там куски имени функции перемежаются аргументами, чтобы не было дурацкого withNextArguments :)
                    Ответить
                    • по мне так там все дурацкое. так жить нельзя
                      Ответить
                      • Любишь лаконичность - пиши на J
                        Ответить
                        • Что-то ты про J да про J... Сваяй нам какой-нибудь говнокодец на J :) Тут вроде их еще не было.
                          Ответить
                          • 1000%~+/+/(<.1000*?1000$0)=(|:1+1000 1000$i.1000)

                            Что делает программа и в чем говно?
                            Ответить
                            • Она существует и в этом ее говно
                              Ответить
                            • > Что делает программа
                              Это же элементарно. Программа проверяет, сколько чисел в рандомном векторе стоят на своих местах.

                              > и в чем говно?
                              1) Возможно, в том, что числа в векторе от 0 до 999, а позиции пронумерованы от 1 до 1000. Нолик никогда не попадет на "свое место", и 1000 место явно лишнее. Этот момент можно пофиксить так:
                              1000%~+/+/(1+<.1000*?1000$0)=(|:1+1000 1000$i.1000)
                              2) Каждая проверка повторяется 1000 раз. Выкинув все это нахрен в итоге получим:
                              +/+/(1+<.1000*?1000$0)=(1+i.1000)
                              Все верно? :)
                              Ответить
                              • Мне не нравится +/+/, нельзя было как-то с +/"2 или */ сделать? (Лень разбираться)
                                Ответить
                                • Что плохо в J - так это его название. Очень плохо гуглится.

                                  > +/+/
                                  А это мой баг. Я второе измерение то выкинул, а сложение убрать забыл:
                                  +/(1+<.1000*?1000$0)=(1+i.1000)
                                  Можно еще 1+ отбросить:
                                  +/(<.1000*?1000$0)=i.1000
                                  И RNG записать попроще:
                                  +/(? 1000 $ 1000)=i.1000
                                  И код станет понятен даже незнакомому с j (такому как я).
                                  Ответить
                                  • щас на мне проверим, как это видит типичный бидлокодер
                                    Ответить
                                    • > щас на мне проверим, как это видит типичный бидлокодер
                                      Для начала сгенерим вектор из 1000 чисел:
                                      1000 $ 1000 NB. Размерности $ Значения
                                      Затем превратим его в вектор из рандомов от 0 до 1000-1:
                                      ? 1000 $ 1000
                                      И сгенерим вектор из чисел от 0 до 1000-1:
                                      i.1000
                                      Затем сравним эти вектора, получая вектор из ноликов и единичек. И подсчитаем сумму оператором +/ (/ "сворачивает" массив указанным оператором, например */ перемножит все элементы).
                                      Ответить
                                      • вот хрен найдешь операторы. вот например статья в которой указано целых 2 (!) оператора языка
                                        http://progopedia.ru/language/j/
                                        Ответить
                                        • > вот хрен найдешь операторы
                                          Словарь: http://www.jsoftware.com/docs/help701/dictionary/contents.htm

                                          Правда их и там хрен найдешь, но все же они там есть :)
                                          Ответить
                                          • http://www.jsoftware.com/docs/help701/dictionary/vocabul.htm

                                            Не тот словарь. У тебя Dictionary, а нужен Vocabulary.
                                            Ответить
                                      • вполне логичное поведение. А примитив языка- матрица. хм. язык сложный, но чувствую на нем можно в несколько строк загнуть сатану раком. А практическая польза от него есть?
                                        Ответить
                                    • >бидлокодер

                                      С Украины?
                                      Ответить
                                • +/,
                                  Ответить
                                  • ну это сумма.
                                    А ? что значит?
                                    = ассигн
                                    . доступ к содержимому?
                                    Ответить
                                    • > А ? что значит?
                                      Рандом :) Очевидно же ;)

                                      > = ассигн
                                      Нет, сравнение. А ассигн там =:
                                      Ответить
                                    • > . доступ к содержимому?
                                      Это не . Это <. аля floor, а >. это ceil.

                                      i. - генератор массивов.

                                      Держи: http://www.jsoftware.com/docs/help701/dictionary/vocabul.htm
                                      Ответить
                                      • то бишь i.N эквивалентно рубишному (0...N).to_a
                                        Ответить
                                    • ? - в монадном варианте - рандом не больше указанного числа, в диадном - рандом без повторений

                                      = - сравнение

                                      . - приставка к операторам, как и :
                                      Ответить
                                      • язык гибкий и скользкий - это хорошо)
                                        Ответить
                                        • показать все, что скрытоcleaned
                                          Ответить
                                          • покажи сиськи а там посмотрим
                                            Ответить
                                            • > покажи сиськи а там посмотрим
                                              тебе нужен шимал? который и с сиськами и хуем?
                                              Ответить
                                              • с сиськами и хуем и клитором
                                                Ответить
                                                • > с сиськами и хуем и клитором
                                                  Футунари что ли? Или как их там правильно зовут?
                                                  Ответить
                                                  • футанари
                                                    Ответить
                                                  • только вот не говори. что ты в этом не разбираешься)
                                                    Ответить
                                                    • > только вот не говори. что ты в этом не разбираешься)
                                                      А я и не разбираюсь, имею только общее представление обо всех этих жанрах китайских японских порномультиков.
                                                      Ответить
                                                      • большую часть в Китае рисуют, спалился
                                                        Ответить
                                                        • > большую часть в Китае рисуют
                                                          в США
                                                          Ответить
                                                          • знаток?)
                                                            Ответить
                                                            • отож. спецом интересовался
                                                              Ответить
                                                              • а у тебя щупальца есть?
                                                                Ответить
                                                                • > а у тебя щупальца есть?
                                                                  А ты с какой целью интересуешься?)
                                                                  Ответить
                                                                • > а у тебя щупальца есть?
                                                                  P.S. Ты про эти?
                                                                  http://www.kinopoisk.ru/film/4128/
                                                                  http://www.kinopoisk.ru/film/31906/
                                                                  Ответить
                                                                  • какие щупальца, там же английским языком написано - осминог
                                                                    Ответить
                                                                    • > английским языком написано - осминог
                                                                      А русским языком - щупальца. Так что ниипет.
                                                                      Ответить
                                                                      • я что, виноват, что у нас фильмы таджики локализуют?
                                                                        Ответить
                                                                        • Я что, виноват, что у них фильмы таджики снимают? Это ж нифига не осьминог, и не спрут, и даже не кальмар, а какая-то неведомая рисованная хрень с щупальцами ;)
                                                                          Ответить
                              • Да, я тут экспериментировал с рандом генератором. Здоровенная матрица на миллион элементов когда-то была нужна для имитации диадного =/, который я не осилил, а потом я забиыл ее поменять.
                                Ответить
        • Так и while тут не нужен, одина эта строка
          commentText = [commentText stringByReplacingOccurrencesOfString:@"< br>" withString:@"/n"];
          заменит все вхождения строки "<br>" на строку "/n"
          Ответить
          • Так я же дословно код переписал, не исправляя, как и просили выше ;)

            А про while я написал тут: http://govnokod.ru/14315#comment209110.
            Ответить
    • Если текста много - а производительность критична, печально будет.
      Ответить
    • Да я смотрю таких оригиналов много: http://govnokod.ru/10273
      Ответить

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