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

    +1

    1. 1
    2. 2
    halve :: [a] -> ([a], [a])
    halve xs = (\xs mf -> (take (mf xs) xs, drop (mf xs) xs)) xs (\l -> (div (length l) 2))

    делим список пополам
    ЧЯДНТ?

    Запостил: schwrzwldr_gbln, 17 Января 2016

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

    • > ЧЯДНТ?
      Это сказал автор кода, когда ему сказали опубликовать его на ГК?
      Ответить
      • это говорит автор кода самому себе, когда код работает, но выглядит как-то уёбищно.
        Ответить
    • Ну в Хаскиле нельзя же просто писать...
      halve :: [a] -> ([a], [a])
      halve xs = (h, t) where
          dv = (flip div 2 . length) xs
          rv = length xs - dv
          h = take dv xs
          t = (reverse . (take rv) . reverse) xs

      надо обязательно как-то так, ну и еще $$$$ где-нибудь рассыпать, и всяких <<||>> и >>=<< добавить.
      Ответить
      • > просто писать
        halve xs = splitAt h xs
          where h = length xs `quot` 2
        Ответить
        • Все равно два раза по списку бежать
          Ответить
          • Ну можно итак изъебнуться

            http://ideone.com/hJvMTf
            Ответить
            • > Ну можно итак

              Здравствуйте, спейс-лики. Заменяем 10 на 100000 и получаем
              Stack space overflow: current size 8388608 bytes.
              Use `+RTS -Ksize -RTS' to increase it.
              При использовании splitAt полёт нормальный.
              Ответить
    • Используй силу ООП!
      Всё на виртуальных методах.
      Например, у базового класса Чувак - методы Превёд, ПошёлНа и т.д.

      Сервисмен наследует от Чувак, переопределяя метод Превед: если отказ в обслуживании, он выдаёт 'Извиняй, бро, сегодня ' + ЧтоЗаОблом(); , где метод ЧтоЗаОблом - абстрактный.

      Торговец наследует от Сервисмен, определяя ЧтоЗаОблом как Хабар() + ' ' + рандом('закончились', 'не завезли', 'все распродал');

      А как уже метод Хабар организовать - смотреть конкретно. Либо каждый торговец - это отдельный класс у которого этот метод тупо константную строчку возвращает, либо простыню на свичах, либо из класса самого хабара в полях торговца выковыривать.
      Ответить
    • - Ну, ты еще не все видел, - сказал он и расстегнул пуговицу на джинсах, - иди поближе, покажу.
      Ответить
    • Я поднялся к себе в комнату, где Джей уже вовсю играл в приставку.
      Ответить

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