prolog

    3热度

    1回答

    我在Prolog看过家族树的各种实现,但是我还没有找到一个做我想做的事情,那就是通过引用彼此来定义孩子和父母。 我想这样做,因为有时我有一个事实,即某人是某个人的孩子,而在其他时候,我有这样的事实,即某人是某人的父母。从这两种事实中,我希望能够问谁是父母,谁是孩子。 我在编码这样的尝试是: - parent(mary, fred). child(john, peter). child(paul

    1热度

    1回答

    我在SWI-Prolog的初学者(但在Borland的Prolog的一些经验),我也面临着下面的测试代码一个奇怪的行为: test(10). test(1). 预计查询?-test(A)可获得2个解决方案,如A = 10; A = 1。但是,仅生产A = 10。我不在这里使用剪切。在SWI-Prolog中,默认情况下回溯可能是关闭的? 在此先感谢

    3热度

    2回答

    我想编写一个函数(道歉可能没有使用正确的术语在这里)wubble如果包裹是针对特定的常量和真为那些常量true进入另一个常数,但只有一层深!例子: % are supposed to be TRUE: ?- wubble(foo). ?- wubble(bar). ?- wubble(wrapper(foo)). ?- wubble(wrapper(bar)). % are suppo

    2热度

    2回答

    我有一个谓词来检查元件是列表的成员,并期待如下: member(X,[X|_]). member(X,[_|T]) :- member(X,T). 当我打电话: - 部件(1,[2,3, 1,4]) 我得到:true。 而现在我必须用它来写谓词将从列表中的列表中删除所有非唯一元素,如下列: remove([[a,m,t,a],[k,a,w],[i,k,b,b],[z,m,m,c]],X).

    3热度

    1回答

    我刚开始学习有关prolog,我在想为什么它是dfs而不是bfs,为什么没有简单的方法来改变它。 ISO prolog的任务是吗?

    3热度

    1回答

    我是Prolog的新手,但我了解基础知识。阅读文件时遇到问题。这是我的文件: 16 78 45 12 32 457 97 12 5 731 2 4 55 44 11 999 7 我想读取它,以便我找回数字作为字符。第一行是第2行数的量的问题是: 1)如何将它们分割的SPACE或新行字符 2)它们必须是数字:32,不字符串:“32 “ 我正在使用SWI-Prolog。

    1热度

    1回答

    我想了解为什么我会得到我的结果。比方说,这是代码和结果: 很抱歉,如果这是微不足道的,但没有太多的来源网上关于这个...如果d的输出(3)是有道理的我,那么e(3)根本就没有。 为什么在这种情况下移动写入会颠倒顺序? 我猜它与递归有关,但我仍然无知,为什么。

    3热度

    2回答

    我试图生成一个从N到1的数字列表,而不使用任何内置谓词,如findall或numlist。我究竟做错了什么 ? pred(N,[H|T]):- H is N, N1 is N-1, pred(N1,T). pred(1,[]). 我不断收到出错:全球栈

    2热度

    1回答

    (X)功能,当我把这个在python from pyswip import * read = Functor("read",1) X=Variable() call(read(X)) 的响应是一个序言壳 |: 如何使代替的raw_input的序言的壳呢? 感谢

    -2热度

    1回答

    我即将在Prolog中实现逻辑术语的证明者。我目前的代码并不真实,因此,我只想说明我希望我的程序做什么,并希望你能给我一些好的建议:) 它应该采取变量列表(可以这么说逻辑参数),其次是包含这些参数的逻辑公式(例如'not'(A 'and' B) 'or' 'not'(B 'and' C) 'or' ...等等)。 作为输出,我希望我的程序对可能的一致分配做出响应。单参数可以是true(1)或fal