如何测试 lambda 演算?

问题描述

我用 C++ 实现了 lambda 演算,但现在我不知道如何摆脱它。我想测试我的函数是否返回正确的东西,但我无法比较结果,因为它是一个函数。有谁知道我如何测试我的代码?

    #include <functional>
    
    class function :
            public std::function<function (function)> {
        public: using type =
                std::function<function (function)>;
        public: using type::function;
    };
    
    
    function True = [](function x) {
        return [&](function y) {
            return x;
        };
    };
    
    function False = [](function x) {
        return [&](function y) {
            return y;
        };
    };
    
    
    function If = [](function x) {
        return [&](function y) {
            return [&](function z) {
                return x(y)(z);
            };
        };
    };
    
    
    function And = [](function x) {
        return [&](function y) {
            return x(y)(x);
        };
    };
    
    function Or = [](function x) {
        return [&](function y) {
            return x(x)(y);
        };
    };
    
    // ...
    
    
    int main()
    {
        // ?
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)