将逻辑 true/false 转换为数字 1/0?

converting logical true/false to numeric 1/0?

在大多数语言中,我可以直接将逻辑真值乘以某个数值,或者至少有一些简单的函数可以将布尔类型转换为某种特定类型,例如 int 或 double。通常,这很容易,因为 "true" 或 "false" 只是数字 1 或 0 的别名。

但在 Maxima 中没有。

而且我也找不到任何将逻辑值转换为数字的嵌入式函数。有没有?

例如,如何对函数进行条件屏蔽?

F(x,param):=condition(x,param)*f(x),其中条件 returns 逻辑值,如 (x>param)->true/false ?

例如你可以写(if x > param then 1 else 0)*f(x)

也可以写成charfun(x > param)*f(x)。参见 ? charfun