unification相关内容
我正在阅读的一篇论文说: Plaisted [3] 表明可以写出形式上正确的PROLOG 程序使用一阶谓词演算语义得出无意义的结果,例如 3
..
我正在尝试创建自己的 WAM 实现,但我被困在 习题2.4 图2.4中的unify_value X4指令我看不懂. 据我了解,这条指令应该将程序中的 Y 与查询中的 f(W) 统一起来. unify_value X4 调用 unify (X4,S) 其中 S=2(见图 2.1),对应的堆单元为“REF 2",X4 为“力量 5 英寸. Unify(图 2.7)应该 bind
..
假设我有以下理论: a(X) :- \+ b(X).b(X) :- \+ c(X).c(a). 它只是说真,这当然是正确的,a(X) 是真的,因为没有 b(X) (否定为有限失败).因为如果没有 c(X) 并且我们有 c(a) 则只有一个 b(X),因此可以说明这一点是真的.但是我想知道为什么 Prolog 不提供答案 X = a?比如说我介绍了一些语义: noOrphan(X) :- \+
..
在 prolog 中,我们可以这样做: myFunction a (a:xs) = ... 也就是说,当 myFunction 的第一个参数与第二个参数中的列表的第一项相同时,此函数将评估为 .... 我现在的问题是......如何在 Haskell 中完成类似的事情?我认为 Prolog 的模式匹配比 Haskell 的更具表现力.我一直在尝试在 Haskell 中编写代码,但遇到了麻
..
有人能解释一下 Prolog 中 == 和 = 运算符之间的区别吗?我知道 X = Y 表示 X 与 Y 统一,如果 X 已经与 Y 统一或可以统一,则为 true,但我不明白这与 ==. 跟进:这(请参阅已接受的答案)是有道理的.还有一个问题,是否存在 X \= Y 为真而 X \== Y 为假(反之亦然)的情况?也就是X \= Y是否会测试它们是不能统一还是目前还没有统一? 解决方
..
给定 Haskell 函数: head .过滤器 现在的问题是如何手动“手动"查找类型.如果我让 Haskell 告诉我我得到的类型: head .过滤器 fst :: [(Bool, b)] ->(布尔,b) 但我想仅使用定义如下的所用函数的签名来了解这是如何工作的: head :: [a] ->一种(.) :: (b -> c) ->(a -> b) ->->C过滤器 :: (a -
..
受到这个问题的启发,我正在努力解决错误 处理反向/2.所以我尝试了这个实现: reverse(X, Y) :- reverse(X, [], Y).reverse(X, _, _) :- var(X), throw(error(instantiation_error,_)).reverse([], X, R) :- !, R = X.reverse([X|Y], Z, R) :- !, rev
..
我正在阅读的一篇论文如下: Plaisted [3] 表明可以写出形式上正确的使用一阶谓词演算语义的 PROLOG 程序得出无意义的结果,例如 3
..
假设我有以下理论: a(X) :- \+ b(X).b(X) :- \+ c(X).丙(一). 它只是说真的,这当然是正确的,a(X) 是真的,因为没有 b(X)(否定为有限失败).因为如果没有 c(X) 并且我们有 c(a),那么只有一个 b(X),可以这样说是真的.我想知道为什么 Prolog 不提供答案 X = a?比如说我介绍了一些语义: noOrphan(X) :- \+ orph
..
谁能解释一下 Prolog 中 == 和 = 运算符之间的区别?我知道 X = Y 意味着 X 与 Y 统一,并且如果 X 已经与 Y 统一或可以实现,则为真,但我不明白这与 ==. 跟进:那(见接受的答案)是有道理的.还有一个问题,是否存在 X \= Y 为真而 X \== Y 为假(或反之亦然)的情况?也就是说,X \= Y 是否测试它们是不能统一还是当前没有统一? 解决方案 =
..
我有这个谓词 spaces_uni(Spc,LstWords),Spc是变量列表,例如 [X,Y,Z] 或 [a,Y,Z] 和LstWords是单词列表,例如 [[o,r,a,n,g,e],[a,p,p,l,e],[b,a,n,a,n,a]] . 此谓词的目的是检查LstWords中是否有任何单词可以与给定的Spc统一. 示例: ?-单词= [[a,m,e,n,o],[a,t,o],
..
我正试图了解该功能的作用 map(过滤器fst) 具有类型 [[[(Bool,a)]]->[[(Bool,a)]] 如果过滤器必须接收一个返回Bool-Type的函数,而fst仅返回一个元组的第一个元素,那么“过滤器fst"如何工作? 过滤器::(a-> Bool)->[a]->[一种]fst ::(a,b)->一种 有人可以解释我吗?谢谢;) 解决方案 如果fi
..
在ISO Prolog中,统一仅针对那些属于NSTO的情况(不受发生检查)定义.背后的想法是涵盖那些通常在程序中使用并且所有Prolog系统实际上都支持的统一情况.更具体地说,ISO/IEC 13211-1:1995的内容如下: 7.3.3可以进行发生检查(STO),而不可以进行 进行发生检查(NSTO) 一组方程式(或两个术语)“可能发生- 检查"(STO),前提是存在一种进行操
..
我正在尝试实现统一,但是遇到问题..已经有很多示例,但是他们要做的只是弄混水.我比开悟更困惑: http://www.cs.trincoll.edu/〜ram/cpsc352/notes/unification.html https://www.doc. ic.ac.uk/~sgc/teaching/pre2012/v231/lecture8.html [下面的代码基于此简介]
..
likes(alice, sports). likes(alice, music). likes(carol, music). likes(david,animals). likes(david,X) :- likes(X,sports). likes(alice,X) :- likes(david,X). ?- likes(alice,X). 几天来我一直在尝试学习序言,当我尝试这个问题时
..
当我使用Instagram共享时,如何从Instagram(当前登录用户)获取用户名和密码. $app = new UEApp(self::APP_SECRET, self::APP_SECRET); $user = new UEUser($this->currentUser->unification_userkey, $this->currentUser->unification_user
..
我正在努力加深我对Prolog的理解,以及它如何处理统一性.在这种情况下,它如何处理与列表的统一. 这是我的知识库; member(X, [X|_]). member(X, [_|T]):- member(X, T). 如果我正确地理解了该过程.如果member(X, [X|_])不是true,则进入递归规则,如果X在列表T中,则[_|T]与T统一. 那么我的递归谓词中的匿名
..
我正在尝试通过 我们将获得以下旅行信息知识库: byCar(auckland, hamilton). byCar(hamilton, raglan). byCar(valmont, saarbruecken). byCar(valmont, metz). byTrain(metz, frankfurt). byTrain(saarbruecken, frankfurt). b
..
让任何人知道类型推断问题如何 E > hd (cons 1 nil) : α0 具有打字环境 E={ hd : list(α1 ) → α1 , cons : α2 → list(α2 ) → list(α2 ), nil : list(
..
Haskell中是否有类型为a -> b的函数?这就是说,有可能编写一个f :: a -> b这样的函数吗?我不认为存在这样的功能是由于以下原因:假设我们在f :: a -> b所在的位置找到f,f 2会产生什么? b类型的值,但是b是什么,因为Haskell无法从我给出的参数中推断(我认为)它?这样对吗?否则,您可以举一个这样的函数的例子吗? 解决方案 禁止⊥ (底值– undefine
..