簡體   English   中英

Maxima 中的原始類型布爾值

[英]Primitive type Boolean in Maxima

我是 Maxima 的新手,但我知道 Java。 我需要編寫一個用 Java 編寫的 Maxima 函數:

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 中返回布爾值的函數嗎? 我可以問一些例子嗎?

對的,這是可能的。 內置布爾函數的 Maxima 稱為謂詞,並且(通常)以“p”結尾。 例子:

(%i1) integerp (0);
(%o1)               true
(%i2) integerp (%pi);
(%o2)               false

您也可以編寫自己的謂詞。

(%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 語法。

(%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 的一個特點是二元數值關系( =<等)不計算​​為布爾值。

(%i1) 4 = 5;
(%o1)                              4 = 5
(%i2) 5 > 3;
(%o2)                              5 > 3

要強制此類關系計算為布爾值,請使用is函數。

(%i1) is (4 = 5);
(%o1)                              false
(%i2) is (5 > 3);
(%o2)                              true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM