作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你好,我正在尝试构建一个谓词,它针对给定的参数返回一个全新的表达式。假设我想通过添加两个数字来创建新表达式。所以当我像这样执行某事时。
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/
我是一名优秀的程序员,十分优秀!