首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maxima中的本原布尔型

Maxima中的本原布尔型
EN

Stack Overflow用户
提问于 2016-03-12 19:08:20
回答 1查看 458关注 0票数 2

我在Maxima很新,但我懂Java。我需要编写一个Maxima函数,它是这样用Java编写的:

代码语言:javascript
复制
private boolean isEchelon() {
    for (int i = 0; i < headElementColumnIndexes.length; i++) {
        int current = headElementColumnIndexes[i];
        for (int j = i + 1; j < headElementColumnIndexes.length; j++)
            if (current == headElementColumnIndexes[j])
                return false;
    }
    return true;
}

是否有可能编写一个以Maxima格式返回布尔值的函数?我可以问几个例子吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-12 23:24:51

是的,这是可能的。在布尔函数中构建的Maxima称为谓词,(通常)以"p“结尾。示例:

代码语言:javascript
复制
(%i1) integerp (0);
(%o1)               true
(%i2) integerp (%pi);
(%o2)               false

您也可以编写自己的谓词。

代码语言:javascript
复制
(%i1) even_prime(n) := evenp(n) and primep(n);
(%o1)             even_prime(n) := evenp(n) and primep(n)
(%i2) even_prime(3);
(%o2)                              false
(%i3) even_prime(2);
(%o3)                              true

一开始可能更容易显式返回布尔值,因为这更接近java语法。

代码语言:javascript
复制
(%i1) even_prime(n) := if evenp(n) and primep(n) then true else false;
(%o1)      even_prime(n) := if evenp(n) and primep(n) then true else false;
(%i2) even_prime(4);
(%o2)                              false

Maxima的一个特点是二元数值关系(=<等)。不要计算为布尔值。

代码语言:javascript
复制
(%i1) 4 = 5;
(%o1)                              4 = 5
(%i2) 5 > 3;
(%o2)                              5 > 3

若要强制将此类关系计算为布尔值,请使用is函数。

代码语言:javascript
复制
(%i1) is (4 = 5);
(%o1)                              false
(%i2) is (5 > 3);
(%o2)                              true
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35962064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档