我是 Prolog 的新手,想定义一个简单的谓词,它根据我选择在算术表达式中使用的函数来计算结果。
所以,这是我的想法:
operation(X,Y, Op, Result):-
Result is X Op Y.
Run Code Online (Sandbox Code Playgroud)
现在,我期待 Prolog 的这一点:
operation(3,4,'+', X).
X = 7.
Run Code Online (Sandbox Code Playgroud)
但是正如您可能猜到的那样,Prolog 不能识别Op为算术运算。有谁知道这怎么可能?
我还没有在互联网上找到任何东西,即使它是相当基本的,我想。
提前致谢!
我正在尝试编写一个正则表达式来检查给定的字符串是否像 a + b、2 + a + b、3 + 6 * 9 + 6 * 5 + a * b 等...
只有 + 和 * 运算符。
我试过
if (str.matches("(\\d|\\w \\+|\\*){1,} \\d|\\w"))
不幸的是,它只处理像 3 * 7 ... (numeric * numeric) 这样的情况。
等待您的答复,感谢您的阅读。
我正在编写一个非常简单的 bash 脚本,但我无法理解为什么已弃用的 $[] 可以完美地工作,而 $(()) 似乎破坏了整个事情。
我所指的代码是:
for i in {1..10};
do
printf %4d $[{1..10}*i]
echo
done
Run Code Online (Sandbox Code Playgroud)
在此版本中,我没有遇到任何问题,但我不想使用已弃用的 bash 元素,这就是我想切换到 $(()) 的原因。
不幸的是,一旦我将代码更改为:
printf %4d $(({1..10}*i))
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
./script_bash.sh: line 8: {1..10}*i: syntax error: argument expected (error token is "{1..10}*i")
Run Code Online (Sandbox Code Playgroud)
我会很感激在这方面提供一些帮助......
我们如何告诉 C++ 编译器在使用+和这样的算术运算符时应该避免隐式转换/,即,
size_t st_1, st_2;
int i_1, i_2;
auto st = st_1 + st_2; // should compile
auto i = i_1 + i_2; // should compile
auto error_1 = st_1 + i_2; // should not compile
auto error_2 = i_1 + st_2; // should not compile
// ...
Run Code Online (Sandbox Code Playgroud) 我正在开发 sml 项目,其中我必须为自定义数据类型实现这两个函数rem和mod。
我知道余数rem的定义。
被除数 = 除数 * 商 + 余数
mod的解释是什么?请用简单的话解释一下它们之间的区别。
我正在尝试了解旧微控制器的指令集,尤其是 6502。
可以在此处找到的指令集文档列出了两个移位指令(除了旋转指令之外):
ASL--算术左移
LSR--逻辑右移
为什么没有算术右移和逻辑左移指令?
我知道可以简单地向其自身添加一个数字,以逻辑地将其向左移动,但专用指令会更方便、更快,即使它只是这样做。但是缺少算术右移指令对我来说没有意义。
assembly arithmetic-expressions 6502 instruction-set bit-shift
我正在尝试编写一个反向波兰计算器,但我不想为输入的每个算术运算符编写开关。是否可以输入算术运算符并在语言本身内部使用它?
例如,程序可以提示用户输入算术运算符 for:,
a = b [whatever operator here] c;
并且某些变量将存储该运算符。假设是+,我们得到:
a = b + c;
这是可能的还是我应该把它吸收并为操作员编写开关?
这基本上与dplyr with %>% pipeline 中的链算术运算符相同的问题,但针对新的(如 R 4.1)管道运算符进行了更新|>。
如何将算术运算符与 R 本机管道链接起来|>?使用 dplyr/magrittr,您可以对算术运算符使用反引号,但这不适用于内置的 R 管道运算符。这是一个简单的例子:
R.version$version.string
# [1] "R version 4.2.2 (2022-10-31 ucrt)"
x <- 2
# With dplyr/magrittr, you can use backticks for arithmetic operators
x %>% `+`(2)
# [1] 4
# But that doesn't work with the inbuilt R pipe operator
x |> `+`(2)
# Error: function '+' not supported in RHS call of a pipe
Run Code Online (Sandbox Code Playgroud)
希望答案足够通用,适用于通常不能与本机 R 管道很好地配合的任何运算符或内置函数(我的版本是 R 4.2.2)。
答案/sf/answers/5046054471/有很多关于 …
在SQL Server 2008中,我正在运行一个报表,我需要分割两列(称为整数Completes和Prescreens整数),然后我转到Excel并将其Prescreens除以Completes,并将其转换为带有2位小数的数字,然后将其转换为百分比.即 - > 0.34,然后变为34%.
在SQL中我知道我可能无法将输出视为"34%",但至少我希望它为0.34.到目前为止,我有:
cast((sq.Completes/sq.Screens ) as float ) as 'conv'
Run Code Online (Sandbox Code Playgroud)
完成是较小的数字(通常是27,38等),屏幕是较大的数字(124,276等)
但这是输出我的专栏0s.如何让它显示0.34,0.84等
t-sql sql-server math arithmetic-expressions sql-server-2008
我正在使用PHP 5.5从数字postgresql数据库表字段中检索数值.它可以来自DB作为null或实际数字,无论我将其存储在变量中.因为我们中的一些人可能知道或者可能不知道null*1 = 0,这是我喜欢做的事情,但是我担心这是否是错误的,或者将潜在的空值转换为零而不实际拥有它是不好的做法检查价值.见下文:
...
$fieldVal *= 1; //assume at this point this holds value returned by DB
...
因此,如果db返回null,则$ fieldVal将变为零,并且任何非null值将保持不变.非常感谢您的见解.