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)
你好,我正在尝试构建一个谓词,对于给定的参数 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)