【问题标题】:How to use AND in Oz Programming language如何在 Oz 编程语言中使用 AND
【发布时间】:2015-12-20 05:42:42
【问题描述】:
declare
fun {Beta E}
    case E
    of lambda(X [Y Z]) andthen {IsAtom Y}  then Z
    else nil 
     end
    end

{Browse {Beta lambda(y [y a])   }}

我正在尝试为 lambda 演算制作一个 beta reducer,但我不知道如何为刚开始使用的 Oz 添加参数。

我想做的是: IsAtom Y and if(X==Y) then Z

我试过“and, &&, &, andthen”,但没有任何效果。 Oz 文档让我头疼。

【问题讨论】:

    标签: lambda-calculus oz


    【解决方案1】:

    在 Oz 中,And 是函数而不是运算符。因此,要执行 and 操作,您需要执行类似

    的操作
    {And true false}
    

    将产生false

    Here 是一本很好的参考手册。

    【讨论】:

      【解决方案2】:

      记住“then”是语句语法中的分隔符,“andthen”和“orelse”是布尔(短路)运算符

      案例陈述:

      PATTERN 的 case VALUE 然后是 STATEMENT

      IF 语句:

      如果 BOOLEXP 则声明

      BOOLEXP: BOOLEXP 然后 BOOLEXP orelse BOOLEXP

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-04
        • 1970-01-01
        • 1970-01-01
        • 2020-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多