1. Куча / Говнокод #12192

    +125

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    splitOn :: (a -> Bool) -> [a] -> [[a]]
    splitOn _ [] = []
    splitOn f xs = removeEmpty $ takeWhile (not . f) xs: splitOn f (dropWhile (f) $ dropWhile (not . f) xs) where
    	removeEmpty [] 	= []
    	removeEmpty (x:xs) 
    		| null x 	= removeEmpty xs 
    		| otherwise = x: removeEmpty xs
    
    words' :: String -> [String]
    words' = splitOn (flip elem " \n\r\f\t\v\160")

    Еще один words'

    Fai, 25 Ноября 2012

    Комментарии (68)
  2. Python / Говнокод #12191

    −100

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    size = 3
    lines = ["___", "bcd", "___"]
    board = [[None]*size]*size
    for x in range(0, size):
      for y in range(0, size):
        if lines[x][y] != '_':
          board[x][y] = lines[x][y]
    print(board)

    я бы, очевидно, хотел видеть результат:
    [[None, None, None], ['b', 'c', 'd'], [None, None, None]]
    но питоша выводит:
    [['b', 'c', 'd'], ['b', 'c', 'd'], ['b', 'c', 'd']]

    serpinski, 24 Ноября 2012

    Комментарии (26)
  3. Си / Говнокод #12190

    +133

    1. 1
    2. 2
    3. 3
    #include <math.h>
     ...
    result = (thisCos ? cos : sin)(3.140);

    Коллега занимается инновациями в Сколково, так они там изобрели операцию NOT на континууме.

    serpinski, 24 Ноября 2012

    Комментарии (137)
  4. JavaScript / Говнокод #12189

    +161

    1. 1
    2. 2
    3. 3
    function toInt(number) {
        return number && + number | 0 || 0;
    }

    http://ideone.com/igo7ag

    Минут 10 назад меня ошарашили фразой о методе toInt(), который, якобы, есть в javascript. Гугл выдал всего одну ссылочку, в которой говорится о нем: http://javascript.ru/forum/misc/22100-funkciya-toint-razyasnite-pozhalujjsta-neskolko-momentov.html. Увидев данный код, я просто не мог не выложить его сюда.

    bormand, 23 Ноября 2012

    Комментарии (28)
  5. Python / Говнокод #12188

    −94

    1. 1
    $class = (preg_match("/^[0-9]+$/", $i/2)) ? "cssBgHex0F0F0F" : "cssBgHexAFAFAF";

    ПХП-коллега выдал: подсветка чётных номеров строк :)

    serpinski, 23 Ноября 2012

    Комментарии (5)
  6. C++ / Говнокод #12187

    +77

    1. 1
    delete[] Memory, leak; //Унарные операторы, такие уринарные.

    Былинный отказ.

    igumnovf, 23 Ноября 2012

    Комментарии (1)
  7. Pascal / Говнокод #12185

    +67

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function IntToHex(N: integer): string;
    const
      S = '0123456789ABCDEF';
    var
      i: integer;
    begin
      SetLength(Result, 8);
      for i := 0 to 7 do Result[8 - i] := S[N shr (i shl 2) and $0F + 1];
    end;

    Носки менял, ноги мыл, все равно воняет хаккирством.

    И оно почему-то в модуле WinAPI.pas у Тараса лежит о_О

    PascalGovno, 23 Ноября 2012

    Комментарии (52)
  8. C# / Говнокод #12184

    +105

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    protected override void WndProc(ref Message m)
                {
                    base.WndProc(ref m);
    
                    //All mouse messages have to be passed to the Master Edit Control
                    //because the panel intercepts them.  
                    if (m.Msg == PUtils.WM_MOUSEMOVE)
                        PUtils.SendMessageToMaster(m.Msg, m.WParam, m.LParam, -1);
                    else
                        if (m.Msg == PUtils.WM_LBUTTONDOWN)
                            PUtils.SendMessageToMaster(m.Msg, m.WParam, m.LParam, -1);
                        else
                            if (m.Msg == PUtils.WM_LBUTTONUP)
                                PUtils.SendMessageToMaster(m.Msg, m.WParam, m.LParam, -1);
                            else
                                if (m.Msg == PUtils.WM_LBUTTONDBLCLK)
                                    PUtils.SendMessageToMaster(m.Msg, m.WParam, m.LParam, -1);
                                else
                                    if (m.Msg == PUtils.WM_MOUSELEAVE)
                                        PUtils.SendMessageToMaster(m.Msg, m.WParam, m.LParam, -1);
                                    else
                                        if (m.Msg == PUtils.WM_RBUTTONDOWN)
                                            PUtils.SendMessageToMaster(m.Msg, m.WParam, m.LParam, -1);
                                        else
                                            if (m.Msg == PUtils.WM_MOUSEACTIVATE)
                                                PUtils.SendMessageToMaster(m.Msg, m.WParam, m.LParam, -1);
                }//Override WndProc

    паубивав бы !!!

    63F45EF45RB65R6VR, 23 Ноября 2012

    Комментарии (15)
  9. Java / Говнокод #12183

    +74

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    private static class NullReader extends Reader {
        public int read(char[] cbuf, int off, int len) {
            return 0;
        }
        public void close() {}
    }

    Однажды понадобилось работать с модулем, который что-то читает с помощью StreamTokenizer, но вместо реального файла подсовывать ему что-то своё, генерируемое на ходу, и при этом быть в курсе, какое место он сейчас читает. Решил пронаследоваться от StreamTokenizer и переопределить ему nextToken(). Оказалось, что у StreamTokenizer нет пустого конструктора, надо обязательно вызвать super и передать туда какой-нибудь Reader. Попробовал передавать null - оказалось, что в его конструкторе стоит проверка, которая сразу кидает NullPointerException. Блин, зачем ему Reader, если он к этому Reader никогда не обратится, ведь я nextToken переопределил! Пришлось сделать свой Reader-заглушку. Но чтобы пронаследоваться от абстрактного Reader, нужно обязательно определить методы read и close. Вот такая шняга в итоге получилась. Недавно случайно открыл код на этом месте и долго на неё пялился :-)

    GoblinAlchemist, 23 Ноября 2012

    Комментарии (7)
  10. Куча / Говнокод #12181

    +123

    1. 1
    val ret = method.invoke(this, args:_*)

    Превращаем Array[Any] в жабовый Object[] в Scala.

    myaut, 23 Ноября 2012

    Комментарии (1)