如何在 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
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