URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10475
[ Назад ]

Исходное сообщение
"Базис 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 на плюсах"
Отправлено Аноним , 04-Июн-24 22:59 
//Если ввести еще 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 , 30-Июн-24 03:27 
> Ребят, можете проверить, правильно реализовал Комбинаторы базиса S,K лямбдами на C++11?

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


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

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


"Базис S, K на плюсах"
Отправлено Neon , 30-Июн-24 03:29 
За такое код и архитектурные решения сразу выгонять с работы. Чтобы не выеживались. Потому, что потом отлаживать и сопровождать такой код -будет чистым издевательством над коллективом

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

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


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

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


"Базис S, K на плюсах"
Отправлено Аноним , 03-Июл-24 10:15 
>[оверквотинг удален]
>     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, и в него тесты.