Prolog-如何将表达式分配给变量

Prolog- How to assign an expression to variable

你好,我正在尝试构建一个谓词,对于给定的参数 return 一个全新的表达式。 假设我想通过添加两个数字来创建新表达式。 所以当我像这样执行某事时。

my_predicate(1,2,X).

Prolog 会 return:

X = 1+2

不幸的是,我不知道如何构建这样的结构并将其分配给 X 变量。如果您能就此主题提出建议,我将不胜感激。

谓词应该描述潜在参数和它们可能形成的表达式之间的关系,所以为什么不称它为args_expr/3。这是加法和乘法的示例。您可以轻松地将此方法扩展到其他表达式:

args_expr(Arg1,Arg2,Arg1 + Arg2).
args_expr(Arg1,Arg2,Arg1 * Arg2).

示例查询:

   ?- args_expr(1,2,X).
X = 1+2 ? ;
X = 1*2

   ?- args_expr((1+2),(3*4),X).
X = 1+2+3*4 ? ;
X = (1+2)*(3*4)

   ?- args_expr(1+2,3*4,X).
X = 1+2+3*4 ? ;
X = (1+2)*(3*4)