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

标签 string prolog expression predicate

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

my_predicate(1,2,X).

序言将返回:

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)

关于string - Prolog-如何将表达式分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36531260/

相关文章:

Python - 评估字符串中的数学表达式

list - 如何在 Prolog 中返回列表?

Prolog 部分匹配

c# - 将查询字符串解析为动态 sql (LINQ)

java - 在 Java 中计算这个数学表达式时,我在哪里搞砸了?

jquery - 更改 div rbg 的颜色和不透明度

ios - 从 Core Data Swift 中检索字符串

java - Java 中的字符串终止符

prolog - 在处理列表时, "-"符号在Prolog中是什么意思?

java - switch 语句中使用的 char 数组