Си диез / Говнокод #19230 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
((Action)(() =>
{
}))();

Екатерина Фоменок делится умениями C#

Запостил: MAD_DEL MAD_DEL, (Updated )

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

                  • Можно собирать диграфы из триграфов, это считается?
                    Ответить
                    • Присоединяюсь к просьбе Борманда. В Си диграфы собираются из символов <, >, :, %, для которых нет триграфов.

                      В каком ЯП можно собрать диграфы из триграфов?

                      P.S. Хотя если ##, ||, |=, ^= и \\ считать диграфами, то можно.
                      Ответить
                        • Всё же замечу, что тетраграфы и гексаграфы составить можно:

                          ??!= эквивалентно |=
                          ??'= эквивалентно ^=

                          ??!??! эквивалентно ||
                          ??/??/ эквивалентно \\
                          ??=??= эквивалентно ##

                          Можно вспомнить ещё что-нибудь с бэкслешами, например, ??/" для экранирования кавычек.
                          Ответить
                          • Вообще, формально говоря, bitand из плюсов является чистым гексаграфом. Как и прочие and_eq. Но это уже откровенное натягивание совы на глобус.
                            Ответить
      • Чтобы поменьше букв: ((void(*)())([](){}))();

        P.S. Интересно, а можно ли на этих скобках можно запилить какое-нибудь лямбда-исчисление... Хотя бы нумералы чёрча...
        Ответить
        • > Чтобы поменьше букв:

          Похоже, минимально возможное число знаков (букв нет вообще, т.е. на 4 меньше):
          (+[](){})();

          #include <iostream>
          #include <typeinfo>
          #include <cxxabi.h>
          
          int main() {
            int status;
            std::cout << "Type as is: " << abi::__cxa_demangle(typeid( [](){}).name(), 0, 0, &status) << std::endl;
            std::cout << "Type with+: " << abi::__cxa_demangle(typeid(+[](){}).name(), 0, 0, &status) << std::endl;
            return 0;
          }
          Output:
          Type as is: main::{lambda()#1}
          Type with+: void (*)()
          Ответить
        • Запилил нетипизированные нумералы Чёрча в https://ideone.com/MEL0Ot
          Семёрка им. Чёрча как (2*(2+2)-1):
          console.log("7 is", unary([](var n){return unary([n](var f){return unary([n,f](
          var x){return n(unary([f,x](var g){return unary([f,g,x](var h){return h(g(f));}
          );}))(unary([x](var u){return x;}))(unary([](var u){return u;}));});});})(unary
          ([](var m){return unary([m](var n){return unary([m,n](var f){return m(n(f));});
          });})(unary([](var n){return unary([n](var f){return unary([n,f](var x){return
          f(n(f)(x));});});})(unary([](var n){return unary([n](var f){return unary([n,f](
          var x){return f(n(f)(x));});});})(unary([](var f){return unary([f](var x){return
          x;});}))))(unary([](var m){return unary([m](var n){return m(unary([](var n){
          return unary([n](var f){return unary([n,f](var x){return f(n(f)(x));});});}))(n)
          ;});})(unary([](var n){return unary([n](var f){return unary([n,f](var x){return
          f(n(f)(x));});});})(unary([](var n){return unary([n](var f){return unary([n,f]
          (var x){return f(n(f)(x));});});})(unary([](var f){return unary([f](var x){
          return x;});}))))(unary([](var n){return unary([n](var f){return unary([n,f](var
          x){return f(n(f)(x));});});})(unary([](var n){return unary([n](var f){return
          unary([n,f](var x){return f(n(f)(x));});});})(unary([](var f){return unary([f](
          var x){return x;});}))))))(unary([](var x){return x+1;}))(0));
          Ответить

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

Где здесь C++, guest?!

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


    8