prolog

    0热度

    1回答

    我有许多包含字母列表,我已经写了检查是否有存在重复这些给定列表中的一个谓词: noDuplicates([]). noDuplicates([H|T]):- not(member(H, T)), noDuplicates(T). 我有10个名单,我想知道是否有在其中任何一个没有重复,所以我让他们到一个大名单,类似的子列表: [[A,B,C], [C,A,D], [E,F,

    3热度

    2回答

    我正在写prolog代码,发现一定数量;如果数字介于0到9之间并且不在给定列表中,则数字是正确的数字。要做到这一点,我写了一个谓语number/3有可能的数字作为第一个参数,其中Rightnumber不能出现在列表和神秘RightNumber作为第三个参数: number([XH|XT], [H|T], RightNumber):- member(XH, [H|T]), !,

    0热度

    1回答

    我一直在试图解决一个寻路问题Prolog.where的谓词是 edge(a,b). edge(a,c). edge(b,d). edge(c,d). edge(d,e). edge(d,f). edge(f,g). 的规则 edge(X,Y) :- edge(X,Z), edge(Z,Y). 然后当我编译和运行查询 | ?- edge(a,X)。 它显示 Fatal Error: local st

    -1热度

    1回答

    练习Datalog的最佳方式是什么? 我应该在pyDatalog中练习吗?或者我应该去与Prolog? (但不是Datalog和Prolog的语法不同?) 谢谢。

    2热度

    4回答

    所以我做了一个名为removeN(列表1,N,列表2)谓语删除成员的N多。应该基本上起到这样的: removeN([o, o, o, o], 3, List2). List2 = [o]. 第一个参数是与许多相同的部件的列表([O,O,O-]或[X,X,X])。第二个参数是要删除的成员数量,第三个参数是已删除成员的列表。 我应该如何去了解这一点,我想使用某种类型的长度。 在此先感谢。

    0热度

    2回答

    SWI-Prolog是否有读取科学记数法的方法?我在这里或文档中找不到任何东西。例如,除了硬解析它之外,有没有办法阅读7.33E-05? 谢谢!

    0热度

    1回答

    我试图将一棵二叉树排序成3个列表,一个用于正数,一个用于负数,另一个用于其他任何东西。 我有了这个代码成功转换成树的列表: treePosNeg(void, []). treePosNeg(tree(Left,Root,Right),[Root|List]) :- treePosNeg(Left,List1), treePosNeg(Right,List2), ap

    2热度

    1回答

    sisters(mary,catherine). sisters(catherine,mary). brothers(john,simone). brothers(simone,john). marriage(john,mary,2010). marriage(mary,john,2010). marriage(kate,simone,2009). marriage(simone,k

    1热度

    1回答

    我需要在SWI-prolog中乘以加法的简单功能。例如m(X,Y,Z),例如X = 5,Z = 3 < ==> 5 * 3。 Y是结果:Y = 5,Y = 10,Y = 15 [停止]。我在想这样的事情: m(X,Y,Z):- Z>0, /*when Z reaches 0 you stop */ I=X+X, W=Z-1, m(I,Y,W). 但它总是返回“假”,不知道为什么。

    0热度

    1回答

    序言查询这是我的Prolog程序: par(0,0). par(0,1). par(0,2). par(1,0). par(1,2). par(1,1). par(2,1). par(2,0). par(2,2). gp(X,Y):- par(X,Z),par(Z,Y). ggp(X,Y) :- par(X,Z), par(Z,W), par(W,Y). 必须使用什么查