Кресты / Говнокод #26308 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  26. 26
  27. 27
  28. 28
int main()
{
    using ToString::ExprToString;

    using Result1 = Eval<Expr<Add,
        Expr<Div, Int<5>, Int<3>>,
        Expr<Div, Int<6>, Int<8>>>>;
    std::cout << ExprToString<Result1>::toString() << std::endl;  // 5/3 + 6/8 = (29 / 12)

    using Result2 = Eval<Expr<Div, Int<100>, Int<20>>>;
    std::cout << ExprToString<Result2>::toString() << std::endl;  // 5

    using Result3 = Eval<Expr<Div, Int<27>, Int<24>>>;
    std::cout << ExprToString<Result3>::toString() << std::endl;  // (9 / 8)

    using Result4 = Eval<Expr<Mul,
        Expr<Div, Int<5>, Int<3>>,
        Expr<Div, Int<6>, Int<8>>>>;
    std::cout << ExprToString<Result4>::toString() << std::endl;  // 5/3 * 6/8 = (5 / 4)

    using Result5 = Eval<Expr<Derivative, Var<0>, Expr<Mul, Var<0>, Var<0>>>>;
    std::cout << ExprToString<Result5>::toString() << std::endl;  // d/dx x*x = 2*x = (Var(0) * 2)

    using Result6 = Eval<Expr<Derivative, Var<0>, Expr<Div, Int<2>, Var<0>>>>;
    std::cout << ExprToString<Result6>::toString() << std::endl;  // d/dx 2/x = -2 * x^2

    return EXIT_SUCCESS;
}

Написал калькулятор с символьными вычислениями на шаблонах. Получился «Лисп».
https://wandbox.org/permlink/vAHC5IpyIIyQhUjJ

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

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

  • Напиши в Комитет, авось включат в стандарт какой-нибудь "расширенной математической библиотекой компайл-тайм вычислений". Минимальную планку по количеству шаблонов ты уже взял.
    Ответить
    • Для этого маловато шаблонных шаблонов*. В Стандарт с тремя принимают, а у меня только два!

      *
      template<template <typename...> typename Op, typename ...Params>
      struct Eval_t<Expr<Op, Params...>> {
          using result = typename Eval_t<Op<typename Eval_t<Params>::result...>>::result;
      };
      Ответить
    • Чтобы Комитет заинтересовался, ему придётся на шаблонах написа́ть функцию Бесселя.
      Ответить
  • Пиздец. Мне сегодня всю ночь снилось, что я стал шаблоном. Пора в дурку, или подождать, пока начну итерироваться?
    Ответить
    • — На работу!
      — Инстанцируйся, блядь! На! Инстанцируйся!
      — Чем, вилкой, что ли, я буду?
      — Инстанцируйся! Да садись уже! Садись! Инстанцируйся!
      — Блядь...
      — Чтобы инстанцированно было!
      — Как я буду вилкой-то инстанцироваться?
      — Инстанцируйся!
      — Покажи мне!
      — Инстанцируйся!
      — Чё, что инстанцируйся? Ёпт, как я буду вилкой-то инстанцироваться? Чё, пфф, совсем мудак, что ли? Покажи мне, как я буду инстанцироваться-то, ёпт!
      Ответить
      • Именно! На меня тоже нашло уныние, когда я проснулся и понял, что не шаблон.
        Ответить
        • https://ljplus.ru/img4/s/u/suporter/shanti_shanti_shanti.jpeg

          > Так вот именно поэтому, чтобы правильно двигаться дальше в нашем движении, нам нужно только конкретное осознание того, что никаких проблем нет, и наше бесконечное существование есть просто чистая практика самопознания абсолютного самого себя. Кроме этого факта, нам ничего и не нужно. Ведь тогда мы получим картину того, что есть вокруг нас и, следовательно, впереди и в себе самом. Такая картина может быть либо постигнута итератором, либо создана его другом, так называемым указателем, или даже самим собой. Но реальность итератора абсолютно безлична и вполне бесстрастна, он ни за что не выдаст нам правильного курса своего движения. Если мы зададим себе вопрос "кто такой итератор?" и увидим, что на него нет правильного ответа, то все это должно быть на самом деле само собой. Абсолютное само там и так.
          Ответить
        • https://govnokod.ru/24560#comment424071
          > Я как будто уже глубокий старец бессмертный или там уже почти бессмертный, который на этом проекте от его самого зарождения, еще когда только лисп еще только-только сформировался после взрыва программирования, когда он вспыхнул, как звезда и начало формировать фп-языки, понимаешь? Я на этом проекте уже как будто пять миллиардов лет, блять, живу и знаю его вдоль и поперек. А ты мне там какие-то эти. Мне похуй на твоих котов, на твои, блять, нахуй, шейплесы, на твои стримы там, на твои акторы, понимаешь? Я был на этом проекте или бесконечном множестве и круче Одерски, и круче Саймона Пейтона Джонса, блять, и круче всех великих, понимаешь? А где-то был конченым говном, еще хуже, чем здесь. Потому что я множество этих состояний чувствую. Где-то я был больше подобен функции, где-то был больше подобен константе, там переменной. Где-то просто был сгусток кода. Это все есть душа, понимаешь? Она вот имеет грани подобия совершенно многообразные, бесконечное множество.
          Ответить

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

Из-за тебя ушел bormand, guest!

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


    8