1. JavaScript / Говнокод #19674

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    (function extend(o, l) {
      return Object.defineProperty(o, 'this', { 
        get: O => extend(O = (x, y) => y ? o(x, O(x, y - 1)) : l ^ 1)
      });
    })(this.this = (x, y) => x + y, 1);

    Почти стрелочная нотация Кнута.
    this.this(2,3) = 2 + 3
    this.this.this(2,3) = 2 * 3
    this.this.this.this(2,3) = 2 ↑ 3
    this.this.this.this.this(2,3) = 2 ↑↑ 3 и т.д.
    По следам http://govnokod.ru/19651#comment317168.

    Запостил: 1024--, 22 Марта 2016

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

    • Для тех, у кого проблемы со стеком:
      (function e(o) {
        return Object.defineProperty(o, 'this', { 
          get: () => e((x, y) => {
            for(var i=0, r=1; i<y; r=o(x, r), ++i);
            return r;
          })
        });
      })((this.this = (x, y) => x + y, this.this.this = (x, y) => x * y));
      Ответить
      • (* basic hyperoperation axiom
        safe_comp_hyper a n b =
            case
                (n = 0) -> safe_comp_hyper(a,n,b) = b + 1
                (n = 1) and (b = 0)  -> safe_comp_hyper(a,n,b) = a
                (n = 2) and (b = 0)  -> safe_comp_hyper(a,n,b) = 0
                (n >= 3) and (b = 0) -> safe_comp_hyper(a,n,b) = 1
                (n >= 1) and (b >= 1) and (a >= 0) -> safe_comp_hyper(a,n,b) = safe_comp_hyper(a, n-1, safe_comp_hyper(a,n,b-1) )
        *)
        
        axiom safe_comp_hyperoperation_int_A_1 : forall a,n,b : int. (n = 0) -> safe_comp_hyper(a,n,b) = b + 1
        
        axiom safe_comp_hyperoperation_int_A_2 : forall a,n,b : int. (n = 1) and (b = 0) -> safe_comp_hyper(a,n,b) = a
        
        axiom safe_comp_hyperoperation_int_A_3 : forall a,n,b : int. (n = 2) and (b = 0) -> safe_comp_hyper(a,n,b) = 0
        
        axiom safe_comp_hyperoperation_int_A_4 : forall a,n,b : int. (n >= 3) and (b = 0) -> safe_comp_hyper(a,n,b) = 1
        
        axiom safe_comp_hyperoperation_int_A_5 : forall a,n,b : int. (n >= 1) and (b >= 1) and (a >= 0) -> safe_comp_hyper(a,n,b) = safe_comp_hyper(a, n-1, safe_comp_hyper(a,n,b-1) )
        Ответить
    • показать все, что скрытовместо ваших дурацких междусобойчиков, помогли бы лучше человеку

      http://forum.ixbt.com/topic.cgi?id=78:5589:109#109
      Ответить
      • При чём тут ГК, поехавший?
        Ответить
        • показать все, что скрытоа чего это ты мне хамить вздумал, любезнейший???
          Ответить
          • Гость - не человек, и сегодня ему предстоит очень трудный вторник. У него уже в течение полутора лет каждый вторник был очень трудным, и теперь его глаза был разработаны настолько, что он без труда мог распознать капчу ГК за 1.72 секунды.
            Ответить
      • Я ещё понимаю, ему бы требовались молодые и амбициозные программисты для проекта xxx, помощь с небольшим SQL-запросом или ссылка на стандарт C++, но там же питушня, о которой он должен подумать сам.
        Ответить
    • >get: O => extend(O = (x, y) => y ? o(x, O(x, y - 1)) : l ^ 1)
      ECMA6 - сразу нахуй.
      Ответить
      • Вам стрелка не нравится, сам стандарт, его поддержка интерпретаторами или автор кода?
        Ответить
        • > сам стандарт
          Я бы назвал его "Road to the criss-cross".

          >стрелка
          Нужно больше синтаксического сахара!
          Ответить
          • > Нужно больше синтаксического сахара!
            Ну вот с классами - это да, что-то лишнее (кто против - пусть реализует наследование переменной-члена с новомодными классами и старыми прототипами; может и правда с сахаром намного удобнее), а стрелка как раз к месту. Если не использовать её так, как у меня в 3 строке. Кстати, пятая строка со стрелкой только понятнее стала.
            Ответить
            • Когда я говорил скальщикам что их язык - говно с сахаром меня тоже минусовали.

              Реально новый стандарт: попытка из слегонца уродливой но простой вёбосишки (ECMA5), сделать монструозные вёб-кресты*java (ECMA6).
              Ответить
              • если скала это говно с скахаром, то JavaScript это говно с солью
                Ответить
                • А PHP это говно с говном.
                  Ответить
                  • показать все, что скрытофрактал плохого дизайна, да:)
                    Ответить
                  • пхп прекрасен
                    Ответить
                    • Если не знать ничего другого - возможно.
                      Ответить
                      • тебе то откуда знать? ты даже в питон не умеешь.
                        Ответить
                        • Я хотя бы в исключения умею в отличие от пыхомакак.
                          Ответить
                          • уверен, что умеешь?
                            Ответить
                            • Я хотя бы ими пользуюсь вместо кодов возврата.
                              Ответить
                              • ну и чем они лучше кода возврата?
                                когда их нужно использовать?

                                или ты заучил как папугай "exception вместо кода возврата" и всегда его кидаешь?
                                Ответить
                          • ха ха ха
                            бухахах

                            расскажи-ка мне в таком случае
                            когда исключение надо использовать, а когда нет
                            и когда надо ловить, а когда нет
                            Ответить
                            • Гость, а когда ты своими знаниями похвастаешься? А то мне с анонимусом спорить ни к чему - все мои недостатки связываются с моим ником, а твои?
                              Ответить
                • Главное потом не приходить и не каяться о том что ECMA6 нинужен, потому что стал сложнее крестов.
                  http://govnokod.ru/17782#comment266869

                  Искренне надеюсь что от какой-нить конторы-отщепенца типа Apple или MS наконец-то будет толк. Объявят бойкот фичам ECMA6, что оставит всех на старой-доброй 5й версии.
                  Ответить
                  • Вам дай волю - так всё к брейнфаку сведёте.
                    Некоторые фичи ES2015 полезны. Ну, кроме самого названия.
                    Я пишу в Chrome 49 на ECMAScript 2016, а у тебя всё ещё IE11 и ECMAScript 5, лошара. Жду выхода V88888.
                    Ответить
                    • >Я пишу в Chrome 49
                      Фууу, старпёр.

                      Уже есть Chrome Canary 50
                      Ответить
          • Ну всё лучше, чем ехал function через function, function function function function.
            Ответить
            • function - это просто фатальнейший, важнейший недостаток js. Во всём остальном он прекрасен. Главное => приделать. Нужно просто посчитать сколько процентов времени уходит написать function, function.

              Блять в 2015 году тащить ООП в изначально функциональный язык - слоупочный зашквар высшего порядка.
              Ответить
    • Пфффь:
      h =: adverb define
           if. u = 0 do.
             +
           else.
             [: (u - 1)h/ ] # [    NB. x (u - 1)h x (u - 1)h ... y раз ... (u - 1)h x 
           end.
         )
         
         2 (0)h 3
      5
         2 (1)h 3
      6
         2 (2)h 3
      8
         2 (3)h 3
      16
      Ответить
      • С нулями не работало, пофиксил:
        ↑ =: adverb define
          if. u = 0 do.
            +
          elseif. u = 1 do.
            *
          elseif. u > 1 do.
            (([: (u - 1)↑/ ] # [)`1: @. (=&0@]))"0
          end.
        )
        
        verb define ''
          for_i. i.3 do.
            f =. '↑' , ":i
            (f) =: i ↑
            echo do f , ' table i.5'
          end.
        )
        
        ┌──┬─────────┐
        │↑0│0 1 2 3 4│
        ├──┼─────────┤
        │0 │0 1 2 3 4│
        │1 │1 2 3 4 5│
        │2 │2 3 4 5 6│
        │3 │3 4 5 6 7│
        │4 │4 5 6 7 8│
        └──┴─────────┘
        ┌──┬───────────┐
        │↑1│0 1 2  3  4│
        ├──┼───────────┤
        │0 │0 0 0  0  0│
        │1 │0 1 2  3  4│
        │2 │0 2 4  6  8│
        │3 │0 3 6  9 12│
        │4 │0 4 8 12 16│
        └──┴───────────┘
        ┌──┬─────────────┐
        │↑2│0 1  2  3   4│
        ├──┼─────────────┤
        │0 │1 0  0  0   0│
        │1 │1 1  1  1   1│
        │2 │1 2  4  8  16│
        │3 │1 3  9 27  81│
        │4 │1 4 16 64 256│
        └──┴─────────────┘
        Ответить
        • Забыл:
          https://tio.run/##VY9BCsIwEEX3OcVHwSRaY4u4KVR6j1K0NQlGSgvViidw7xW9SJwq1roZmP9m/p853bx/3h9IYhT6atoS2lhXGwY4q9AhQQjdKOqBBVVTnc2XRAOZ/5HtiAiRxRAdlogkBa2QY4pM7qMYqYJIZmGaSzkJe4NaKyYZG50BzgnYpt05BafWg61FosDJkCPAJHafLCv7RxxIfwvmcGxohaYDcFyKsjLksuG/MO9f
          Ответить

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