如何在 Oz 编程语言中使用 AND

How to use AND in Oz Programming language

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 和 if(X==Y) 然后 Z

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

在 Oz 中,And 是函数而不是运算符。所以要执行一个 and 操作,你会做类似

的事情
{And true false}

将产生 false

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

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

案例陈述:

先是 PATTERN 的 VALUE,然后是 STATEMENT

IF语句:

如果布尔表达式则语句

布尔表达式: BOOLEXP 然后是 BOOLEXP orelse BOOLEXP