1. C++ / Говнокод #12264

    +15

    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
    LambdaVar<1> X;
    LambdaVar<2> Y;
    // The next line prints 10:
    cout << lambda(X,Y)[ plus[ multiplies[3,X], Y ] ] (3,1) << endl;
    cout << lambda(X,Y)[ (3 %multiplies% X) %plus% Y ] << endl;
    //...
    lambda(X)[ X %plus% getCurrentTime[_*_] ]
    //...
    let[ X == someLambdaExp,
            Y == someOtherLambdaExpWhichMayInvolveX ]
       .in[ someLambdaExpInvolvingXandY ]
    //...
    lambda(X)[ 
          letrec[ F == lambda(Y)[ if1[ Y %equals% 0, 
                                       1, 
                                       Y %multiplies% F[Y %minus% 1] ] ] ]
          .in[ F[X] ] ]
    //...
     Maybe<int> mx = just(2);
       Maybe<int> my = just(3);
       mx = lambda()[ compM<MaybeM>()[ plus[X,Y] | X<=mx, Y<=my, guard[false] ] ]();
       cout << mx << endl;   // Nothing
    //...
    compM<ListM>()[ makePair[X,Y] | X<=list_with(1,2), guard[true], 
              Y<=list_with(3,4), guard[ (Y %divides% X) %equal% 3 ] ] ]

    Грибки отсюда:
    http://people.cs.umass.edu/~yannis/fc++/

    Запостил: LispGovno, 10 Декабря 2012

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

    • Жаль, но в буст не протащили. В 2004 году создатель написал, что уже готовимся протащить.
      Протащили только аналог лямбд, и то подозреваю другим автором
      Ответить
      • надеюсь, в бусте никогда не будет этого верблядского стиля
        пускай коммитит в кьютэ
        Ответить
        • от слова "верблюд"?
          Ответить
        • И в Qt не надо. Хоть верблядостайл там и принят, зато там не любят извращения с шаблонами (сложнее смартпоинтеров и контейнеров).
          Ответить
        • В бусте своего хватает, типа
          boost::phoenix
          или
          boost::spirit
          Как-нибудь запощу.
          А вы можете пополнить список.
          Ответить
          • Инструментом главное уметь пользоваться, а использование везде где бы то ни было ведет только в головной боли.
            Ответить
            • >Инструментом главное уметь пользоваться
              Лол. Это вот этим то инструментом, что стоит во главе топика? Главное не писать хуёвый инструмент. А если его кто-то написал, то главное не пользоваться этим инструментом.
              Ответить
    • getCurrentTime[_*_]

      [_*_]

      жопосмайлик?
      Ответить

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