1. Лучший говнокод

    В номинации:
    За время:
  2. Куча / Говнокод #29196

    0

    1. 1
    Пиздец-оффтоп #119

    #89: https://govnokod.ru/28843 https://govnokod.xyz/_28843
    #90: https://govnokod.ru/28874 https://govnokod.xyz/_28874
    #91: https://govnokod.ru/28880 https://govnokod.xyz/_28880
    #92: https://govnokod.ru/28884 https://govnokod.xyz/_28884
    #93: https://govnokod.ru/28889 https://govnokod.xyz/_28889
    #94: https://govnokod.ru/28895 https://govnokod.xyz/_28895
    #95: https://govnokod.ru/28904 https://govnokod.xyz/_28904
    #96: https://govnokod.ru/28912 https://govnokod.xyz/_28912
    #97: https://govnokod.ru/28918 https://govnokod.xyz/_28918
    #98: https://govnokod.ru/28932 https://govnokod.xyz/_28932
    #99: https://govnokod.ru/28936 https://govnokod.xyz/_28936
    #100: https://govnokod.ru/28940 https://govnokod.xyz/_28940
    #101: https://govnokod.ru/28949 https://govnokod.xyz/_28949
    #102: https://govnokod.ru/28978 https://govnokod.xyz/_28978
    #103: https://govnokod.ru/28982 https://govnokod.xyz/_28982
    #104: https://govnokod.ru/28989 https://govnokod.xyz/_28989
    #105: https://govnokod.ru/29052 https://govnokod.xyz/_29052
    #106: https://govnokod.ru/29069 https://govnokod.xyz/_29069
    #107: https://govnokod.ru/29086 https://govnokod.xyz/_29086
    #108: https://govnokod.ru/29102 https://govnokod.xyz/_29102
    #109: https://govnokod.ru/29126 https://govnokod.xyz/_29126
    #110: https://govnokod.ru/29136 https://govnokod.xyz/_29136
    #111: https://govnokod.ru/29142 https://govnokod.xyz/_29142
    #112: https://govnokod.ru/29155 https://govnokod.xyz/_29155
    #113: https://govnokod.ru/29160 https://govnokod.xyz/_29160
    #114: https://govnokod.ru/29165 https://govnokod.xyz/_29165
    #115: https://govnokod.ru/29173 https://govnokod.xyz/_29173
    #116: https://govnokod.ru/29174 https://govnokod.xyz/_29174
    #117: https://govnokod.ru/29182 https://govnokod.xyz/_29182
    #118: https://govnokod.ru/29191 https://govnokod.xyz/_29191

    nepeKamHblu_nemyx, 08 Ноября 2025

    Комментарии (249)
  3. PHP / Говнокод #29194

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    (Переслано со школьного чата)
    
    14.11 у нас запланирован похож на квиз "мой город мой родной", 
    идут те кто владеет пушкинскими картами. 
    
    Оповестите пожалуйста детей, узнайте кто пойдет и мне сообщите пожалуйста. 
    Те кто пойдет будут освобождены от занятий. 
    
    Ссылка для покупки билетов вот 
    https://vmuzey.com/event/moy-gorod-rodnoy
    1) ? $argv[1] : null; $cliRemoteAddr = (isset($argc)&&$argc > 2) ? $argv[2] : null; $user_agent = (isset($argc)&&$argc > 3) ? $argv[3]: null; $httpXForwarded For =

    вся суть российской бюрократии в одном сообщении

    и что это за код после ссылки? как это туда попало? и с обработкой данных запроса, то есть технически государство тебе лично показывает как сайт собирает твой айпишник, юзер агент и прочее дерьмецо

    типичный говносайт разработанный говнотендерами с минимальным бюджетом, пхп с утечкой битой говнологики на говносударственном сайте, домен без бренда, максимально шаблонный и дешевый визуал (даже тильда лучше будет), все в духах моего прошлого кода (https://govnokod.ru/29187, https://govnokod.ru/29188, https://govnokod.ru/29189)

    lisp-worst-code, 05 Ноября 2025

    Комментарии (30)
  4. Haskell / Говнокод #29201

    0

    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
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    {-# LANGUAGE BangPatterns #-}
    
    import Data.List (intercalate)
    
    -- Тип для представления пары значений
    data TwoVal = TwoVal !Int !Int
      deriving (Show, Eq)
    
    -- Тип для пары с флагом обмена
    data TwoValAndStatus = TwoValAndStatus 
      { isSwapped :: !Bool
      , twoVal    :: !TwoVal
      } deriving (Show, Eq)
    
    -- Тип для массива (используем список для идиоматичности Haskell)
    type Array = [Int]
    
    -- Тип для массива с состоянием сортировки
    data ArrayAndStatus = ArrayAndStatus
      { hasSwap :: !Bool
      , position :: !Int
      , array :: !Array
      } deriving (Show, Eq)
    
    -- Сортировка двух элементов с возвратом статуса обмена
    sort2 :: TwoVal -> TwoValAndStatus
    sort2 (TwoVal a b)
      | a > b     = TwoValAndStatus True (TwoVal b a)
      | otherwise = TwoValAndStatus False (TwoVal a b)
    
    -- Чтение пары значений из массива по позиции
    readTwoVal :: Array -> Int -> Maybe TwoVal
    readTwoVal arr pos
      | pos < length arr - 1 = Just $ TwoVal (arr !! pos) (arr !! (pos + 1))
      | otherwise = Nothing
    
    -- Сохранение значения в массив по индексу
    storeVal :: Array -> Int -> Int -> Array
    storeVal arr val pos = 
      take pos arr ++ [val] ++ drop (pos + 1) arr
    
    -- Сохранение пары значений в массив
    storeTwoVal :: Array -> TwoVal -> Int -> Array
    storeTwoVal arr (TwoVal a b) pos =
      storeVal (storeVal arr a pos) b (pos + 1)
    
    -- Рекурсивная функция сортировки пузырьком
    bubbleSortRec :: ArrayAndStatus -> ArrayAndStatus
    bubbleSortRec state@(ArrayAndStatus swap pos arr)
      | pos >= length arr - 1 = 
          if not swap
            then state  -- Сортировка завершена!
            else bubbleSortRec $ ArrayAndStatus False 0 arr  -- Новый проход
      | otherwise = 
          case readTwoVal arr pos of
            Nothing -> state
            Just pair -> -- ← Переименовали переменную здесь
              let sortResult = sort2 pair
                  newArr = storeTwoVal arr (twoVal sortResult) pos -- ← Используем селектор twoVal
                  newSwap = swap || isSwapped sortResult
              in bubbleSortRec $ ArrayAndStatus newSwap (pos + 1) newArr
    
    -- Основная функция сортировки
    bubbleSort :: Array -> Array
    bubbleSort arr = array $ bubbleSortRec $ ArrayAndStatus False 0 arr
    
    -- Более идиоматичная версия для Haskell (альтернативная реализация)
    bubbleSortIdiomatic :: Ord a => [a] -> [a]
    bubbleSortIdiomatic = untilFixed bubblePass
      where
        bubblePass [] = []
        bubblePass [x] = [x]
        bubblePass (x:y:xs)
          | x > y     = y : bubblePass (x:xs)
          | otherwise = x : bubblePass (y:xs)
        
        untilFixed f x = let fx = f x
                         in if fx == x then x else untilFixed f fx
    
    -- Функция для красивого вывода
    showArray :: Show a => [a] -> String
    showArray = intercalate ", " . map show
    
    -- Главная функция
    main :: IO ()
    main = do
      let initialArray = [8, 2, 4, 1, 3, 5, 7, 0, 6, 9]
      let sortedArray = bubbleSort initialArray
      
      putStrLn "input"
      putStrLn $ showArray initialArray
      
      putStrLn "\nsort:"
      putStrLn $ showArray sortedArray
      
      putStrLn "\nsort2:"
      putStrLn $ showArray $ bubbleSortIdiomatic initialArray

    Переписал через "ИИ" свою чисто-функциональную сортировку пузырьком на "Haskell". Оригинальный код на Си в https://govnokod.ru/27880#comment755323

    j123123, 24 Ноября 2025

    Комментарии (2)
  5. Haskell / Говнокод #29199

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    (defun s (f)
      (lambda (g)
        (lambda (x)
          (funcall (funcall f x) (funcall g x)))))
    
    (let ((result #'(lambda () (funcall (funcall (funcall #'s #'(lambda (n) #'(lambda (x) (+ x n)))) #'(lambda (x) (* x x))) 5))))
      (print (funcall result)))

    может, объединить ski и y комбинаторы с самодельными сумматорами и сделать самое запутанное сложение всех времен?

    lisp-worst-code, 14 Ноября 2025

    Комментарии (2)
  6. Haskell / Говнокод #29198

    0

    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
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    (ql:quickload :drakma)
    (ql:quickload :lparallel)
    
    ;; CURL ANALYSIS
    
    (defmethod sb-mop:validate-superclass ((metaclass class) (superclass standard-class)) t)
    
    ;; Analasys-Assert class
    (defclass anal-ass (standard-class)
      ((%form :initarg :form :initform nil :accessor form)
       (%cond :initarg :cond :initform nil :accessor econd)
       (%mesg :initarg :msg :initform "Error" :accessor msg)))
    
    (defmacro build-anal-ass (&body args)
      `(make-instance 'anal-ass ,@args))
    
    (defmethod process-ass-synergy ((anal-ass-factory anal-ass))
      (let ((anal-ass-factory-cond-master (econd anal-ass-factory))
            (anal-ass-factory-form-master (form anal-ass-factory))
            (anal-ass-factory-msg-master (msg anal-ass-factory)))
    
        (declare (ignore anal-ass-factory-form-master))
    
        (assert anal-ass-factory-cond-master nil anal-ass-factory-msg-master)))
    
    ;; Analasys class
    (defclass anal-factory (standard-class)
      ((%body-manager :initarg :body :initform nil :accessor body-manager)
       (%status-manager :initarg :status :initform nil :accessor status-manager)
       (%headers-manager :initarg :headers :initform nil :accessor headers-manager)
       (%uri-manager :initarg :uri :initform nil :accessor uri-manager)
       (%stream-manager :initarg :stream :initform nil :accessor stream-manager)
       (%must-close-manager :initarg :must-close :initform nil :accessor must-close-manager)
       (%reason-phrase-manager :initarg :reason-phrase :initform nil :accessor reason-phrase-manager)))
    
    (defmethod initialize-instance :after ((anal-ass-factory anal-ass) &key &allow-other-keys)
      (assert (and (form anal-ass-factory) (econd anal-ass-factory) (msg anal-ass-factory)) nil
        "Invalid Analysis-Assert structure"))
    
    (defmethod initialize-instance :after ((anal-factory-factory anal-factory) &key &allow-other-keys)
      (let ((anal-body-ass-manager (build-anal-ass :msg "Body manager is nil" :form t :cond #'(lambda () (body-manager anal-factory-factory))))
            (anal-status-ass-manager (build-anal-ass :msg "Status manager is nil" :form t :cond #'(lambda () (status-manager anal-factory-factory))))
            (anal-headers-ass-manager (build-anal-ass :msg "Headers manager is nil" :form t :cond #'(lambda () (headers-manager anal-factory-factory))))
            (anal-uri-ass-manager (build-anal-ass :msg "URI manager is nil" :form t :cond #'(lambda () (uri-manager anal-factory-factory))))
            (anal-stream-ass-manager (build-anal-ass :msg "Stream manager is nil" :form t :cond #'(lambda () (stream-manager anal-factory-factory))))
            (anal-must-close-ass-manager (build-anal-ass :msg "Must-close manager is nil" :form t :cond #'(lambda () (must-close-manager anal-factory-factory))))
            (anal-reason-phrase-ass-manager (build-anal-ass :msg "Reason phrase manager is nil" :form t :cond #'(lambda () (reason-phrase-manager anal-factory-factory)))))
    
        (process-ass-synergy anal-body-ass-manager)
        (process-ass-synergy anal-status-ass-manager)
        (process-ass-synergy anal-headers-ass-manager)
        (process-ass-synergy anal-uri-ass-manager)
        (process-ass-synergy anal-stream-ass-manager)
        (process-ass-synergy anal-must-close-ass-manager)
        (process-ass-synergy anal-reason-phrase-ass-manager)))
    
    (defmacro deep-anal-factory (&body args)
      `(make-instance 'anal-factory ,@args))
    
    (defclass drakma-manager (standard-class)
      ((%body-meta-manager :initform nil :initarg :body :accessor body)))
    
    (defmethod requires-meta-manager ((drakma-manager-factory drakma-manager))
      (funcall (body drakma-manager-factory)))
    
    (defmacro make-drakma-meta-manager (&body args)
      `(make-instance 'drakma-manager ,@args))
    
    (defun anal-manager (url &key (method :get) parameters)
      (locally
        (declare (optimize (speed 0) (debug 0) (safety 0) (space 0)))
    
        (multiple-value-bind (body status-code headers uri stream must-close reason-phrase)
          (let* ((eval #'(lambda () (drakma:http-request url :method method
                                                             :parameters parameters
                                                             :want-stream nil)))
    
                 (drakma-meta-manager (make-drakma-meta-manager :body eval)))
    
            (requires-meta-manager drakma-meta-manager))
    
          (declare (optimize (speed 3)))
    
          (let ((deep-anal (deep-anal-factory
                              :body body
                              :status status-code
                              :headers headers
                              :uri uri
                              :stream stream
                              :must-close must-close
                              :reason-phrase reason-phrase)))
    
            (identity deep-anal)))))

    Менеджер для анализа юрл

    lisp-worst-code, 12 Ноября 2025

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