Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
prolog中的算术变量_Prolog - Fatal编程技术网

prolog中的算术变量

prolog中的算术变量,prolog,Prolog,我想处理包含变量的算术表达式。变量应保持原样,其他部分应进行计算。比如说, ?-result(7*x,R). R=7*x. ?-result(x+(2*3),R). R=x+6. 我该怎么做呢?哦,我很抱歉我的马虎。我刚刚编辑了它。定义规则,如result(X*Y,R):-…并检查X或Y是否实际上是一个数字(如果X是一个数字,则可以使用number(X),这是真的)。评估它们是否是数字,如果不是原子,则递归处理(例如,x是原子,但x+3不是)。如果你被困在某个地方,试一下,然后带着一个具体的

我想处理包含变量的算术表达式。变量应保持原样,其他部分应进行计算。比如说,

?-result(7*x,R).
R=7*x.

?-result(x+(2*3),R).
R=x+6.

我该怎么做呢?

哦,我很抱歉我的马虎。我刚刚编辑了它。定义规则,如
result(X*Y,R):-…
并检查
X
Y
是否实际上是一个数字(如果
X
是一个数字,则可以使用
number(X)
,这是真的)。评估它们是否是数字,如果不是原子,则递归处理(例如,
x
是原子,但
x+3
不是)。如果你被困在某个地方,试一下,然后带着一个具体的问题回来。你还需要解释你所说的过程是什么意思。你是说简化?例如,您是否希望获得,
3*(x+4)-(x+5)
,并获得
R=2*x+7
?这非常适合Prolog,但不是初学者的程序。