ЙажаСценарий / Говнокод #19674 Ссылка на оригинал

0

  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-- 1024--, (Updated )

Комментарии (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) )
      Ответить
      • а чего это ты мне хамить вздумал, любезнейший???
        Ответить
        • Гость - не человек, и сегодня ему предстоит очень трудный вторник. У него уже в течение полутора лет каждый вторник был очень трудным, и теперь его глаза был разработаны настолько, что он без труда мог распознать капчу ГК за 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 это говно с солью
              Ответить
              • Главное потом не приходить и не каяться о том что ECMA6 нинужен, потому что стал сложнее крестов.
                http://govnokod.ru/17782#comment266869

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

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8