The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Базис S, K на плюсах, !*! Аноним, 04-Июн-24, 22:21  [смотреть все]
Ребят, можете проверить, правильно реализовал Комбинаторы базиса S,K лямбдами на C++11?

// C++11
#include <iostream>

int main() {
    //-I-----------------------------
    const auto I = [](const auto x){
        return x;
    };
    //-K-S----------------------------
    const auto K = [](const auto x){
      return [x](const auto y){ return x; };
    };
    const auto S = [](const auto x){
        return[x](const auto y){
            return [x,y](const auto z){
                auto xz = x(z);
                return xz(y(z));
            };
        };
    };
    //------------------------------
    const auto x = 42;
    const auto y = 41;

    const auto Ix = I(x);
    const auto Iy = I(y);
    const auto SKKx = S(K)(K)(x);

    if( Ix == SKKx ) std::cout << "Success! : Ix == SKKx" << std::endl;
    if( Iy not_eq SKKx ) std::cout << "Success! : Iy not_eq SKKx" << std::endl;
    

    return 0;
}
// https://github.com/kodxxl/CL/blob/main/SKbasis.cpp

  • Базис S, K на плюсах, !*! Аноним, 22:59 , 04-Июн-24 (1)
    //Если ввести еще 2 функции:

    const auto mul = [](const auto x){
      return [x](const auto y){
        return x * y;
      };
    };
    const auto half = [](const auto x){
            return x / 2;
    };

    //то:

    const auto Sxyz_1 = S(mul)(half)(x);
    std::cout << "S(mul)(half)(x) = " << Sxyz_1 << std::endl;    

    // S(mul)(half)(x) = 882

    const auto Sxyz_2 = S(mul)(I(half))(K(x)(3));
    std::cout << "S(mul)(I(half))(K(x)(3)) = " << Sxyz_2 << std::endl;

    // S(mul)(I(half))(K(x)(3)) = 882

  • Базис S, K на плюсах, !*! Neon, 03:27 , 30-Июн-24 (2)
    > Ребят, можете проверить, правильно реализовал Комбинаторы базиса S,K лямбдами на C++11?

    Что за изврат и главное на хрена ?! Чтобы просто выеживаться ?

    • Базис S, K на плюсах, !*! Аноним, 15:47 , 01-Июл-24 (5)
      >> Ребят, можете проверить, правильно реализовал Комбинаторы базиса S,K лямбдами на C++11?
      > Что за изврат и главное на хрена ?! Чтобы просто выеживаться ?

      Угадал. Просто, чтобы перед тобой повыёживаться, и ткнуть носом в невежество.

  • Базис S, K на плюсах, !*! Neon, 03:29 , 30-Июн-24 (3)
    За такое код и архитектурные решения сразу выгонять с работы. Чтобы не выеживались. Потому, что потом отлаживать и сопровождать такой код -будет чистым издевательством над коллективом
    • Базис S, K на плюсах, !*! Аноним, 15:46 , 01-Июл-24 (4)
      > За такое код и архитектурные решения сразу выгонять с работы. Чтобы не
      > выеживались. Потому, что потом отлаживать и сопровождать такой код -будет чистым
      > издевательством над коллективом

      Тебя самого надо выгнать с работы, за то, что не знаешь базу.

    • Базис S, K на плюсах, !*! Аноним, 15:48 , 01-Июл-24 (6)
      > За такое код и архитектурные решения сразу выгонять с работы. Чтобы не
      > выеживались. Потому, что потом отлаживать и сопровождать такой код -будет чистым
      > издевательством над коллективом

      Сумасшедший, где ты тут увидел архитектурные решения? Это теория, которой больше 100 лет уже.

  • Базис S, K на плюсах, !*! Аноним, 10:15 , 03-Июл-24 (9)
    >[оверквотинг удален]
    >     const auto Ix = I(x);
    >     const auto Iy = I(y);
    >     const auto SKKx = S(K)(K)(x);
    >     if( Ix == SKKx ) std::cout << "Success!
    > : Ix == SKKx" << std::endl;
    >     if( Iy not_eq SKKx ) std::cout << "Success!
    > : Iy not_eq SKKx" << std::endl;
    >     return 0;
    > }
    > // https://github.com/kodxxl/CL/blob/main/SKbasis.cpp

    Только один тест - мало. Распиши проверки.
    Ну и в исходнике на гитхабе добавь makefile, и в него тесты.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру