【发布时间】:2015-12-06 11:31:43
【问题描述】:
尝试实现一种有限形式的匹配 统一。
如果我们可以找到替换,则尝试匹配两个公式匹配 出现在公式中的变量使得两者在语法上 等价的。
我需要编写一个函数来确定是否 常数对应于一个基本项,例如 Brother(George) 和 模式对应于一个量化的公式,如 Brother(x) 匹配。如果 它们确实匹配函数返回一组称为绑定的替换 将变量映射到术语。一个常数匹配另一个常数,如果它们 是平等的。未绑定的变量(当前没有绑定的变量)匹配 任何公式。绑定变量匹配一个常量,如果该常量和 变量绑定的值相等。
例子:
match(爱(狗(Fred), Fred)
爱(x,y))
在 x = Dog(Fred) 和 y = Fred 时为真
另一个
match(爱(狗(Fred), Fred)
爱(x,x)
失败
【问题讨论】:
-
为什么不用prolog?它免费提供统一
-
实现为正则表达式?用什么语言?赛德?珀尔?格力普?对我们来说不幸的是,正则表达式有不同的风格。
-
想用 Python 做些什么?
标签: regex artificial-intelligence matching unification