The OpenNET Project / Index page

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



"Базис S, K на плюсах"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"Базис S, K на плюсах"  +/
Сообщение от Аноним (0), 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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Базис S, K на плюсах"  +/
Сообщение от Аноним (0), 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

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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