Ребят, можете проверить, правильно реализовал Комбинаторы базиса 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
//Если ввести еще 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) = 882const 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 лямбдами на C++11?Что за изврат и главное на хрена ?! Чтобы просто выеживаться ?
>> Ребят, можете проверить, правильно реализовал Комбинаторы базиса S,K лямбдами на C++11?
> Что за изврат и главное на хрена ?! Чтобы просто выеживаться ?Угадал. Просто, чтобы перед тобой повыёживаться, и ткнуть носом в невежество.
За такое код и архитектурные решения сразу выгонять с работы. Чтобы не выеживались. Потому, что потом отлаживать и сопровождать такой код -будет чистым издевательством над коллективом
> За такое код и архитектурные решения сразу выгонять с работы. Чтобы не
> выеживались. Потому, что потом отлаживать и сопровождать такой код -будет чистым
> издевательством над коллективомТебя самого надо выгнать с работы, за то, что не знаешь базу.
> За такое код и архитектурные решения сразу выгонять с работы. Чтобы не
> выеживались. Потому, что потом отлаживать и сопровождать такой код -будет чистым
> издевательством над коллективомСумасшедший, где ты тут увидел архитектурные решения? Это теория, которой больше 100 лет уже.
>[оверквотинг удален]
> 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, и в него тесты.