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

Posted

技术标签:

【中文标题】如何在 Oz 编程语言中使用 AND【英文标题】:How to use AND in Oz Programming language 【发布时间】: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 文档让我头疼。

【问题讨论】:

【参考方案1】:

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

的操作
And true false

将产生false

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

【讨论】:

【参考方案2】:

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

案例陈述:

PATTERN 的 case VALUE 然后是 STATEMENT

IF 语句:

如果 BOOLEXP 则声明

BOOLEXP: BOOLEXP 然后 BOOLEXP orelse BOOLEXP

【讨论】:

以上是关于如何在 Oz 编程语言中使用 AND的主要内容,如果未能解决你的问题,请参考以下文章

对 Mozart/Oz 编程语言的看法? [关闭]

动态类型和编程分布式系统

动态编程

[线程本地存储 · 语雀 (yuque.com)](https://www.yuque.com/haofeiyu/java/oz8uve) 线程本地存储提供了线程内存储变量的能力,这些变量是线程私有

英语国家的 URL 本地化 - iOS

java代码规范