prolog

    1热度

    2回答

    我试图做这个练习,我应该建立一个prolog程序,当给定一个数字和一个列表时,返回一个没有数字倍数的列表。现在我做了这个: removeMultiples([],[]). removeMultiples(N, [Head|Tail], Result):- Head mod N =:= 0, removeMultiples(N, Tail, Result). removeMu

    1热度

    1回答

    让说我有一个英文表达,说: 日是晚上8点前,上午8点 后,如果我想在序言中表示这是我可以做这样的事情: day(X) :- X<=2000,X>=800. 2000 = 8pm 800 = 8am 但这不会工作。有没有更好的方式来表达上述英语表达?

    0热度

    1回答

    我正在做一个练习,要求实施from_to/3,在这里你给出了两个数字作为前两个参数,而Prolog给你列出了它们之间的所有内容作为结果。例如:​​会给R=[1,2,3,4,5]。 我写了下面的程序: fromto(N, O, []):- N >= O. fromto(N, O, [N|TailResult]):- O > N, O1 is O-1, fro

    2热度

    1回答

    我刚刚开始学习Prolog的,我发现一些代码,我也很难理解: stringCounter([],0,0). stringCounter([H|[]],1,1) :- char_type(H, alpha),!. stringCounter([H1,H2|T],CCount,WCount):- char_type(H1, alpha), \+char_type(H2,al

    0热度

    2回答

    我已经定义了以下运算符: :- op(200, xfx, plus). :- op(100, xfx, times). 我想实现一个谓语翻译/ 2,这样仅由数字给定的期限和经营者以及和时间,使这些运营商将被转换为相应的算术运算符:+和*。 例如: ?- translate((4 plus 5), Result). Result = 4 + 5. ?- translate(((3

    2热度

    1回答

    问题停止,这是创建一个replace/4谓词想x与其他元素(Y)代替从第一列表中的某个元素(X),最后保存它进入最后一个参数,一个新的列表。我知道我的基本情况(?)显然有些问题,但我似乎无法弄清楚。当我跟踪这段代码时,它开始正常,但在第一个列表为空之后,它开始添加匿名变量。请怜悯我是Prolog的新手。 replace([], _, _, []). replace([H|T], X, Y, N)

    1热度

    1回答

    我为某些Prolog代码编写了一些测试,并得到了“Test succeeded with choicepoint”警告。下面是我的测试之一: test(overlap_intervals):- overlap_intervals([0, 10], [5, 15]). 这里的代码: test(member, all(X == [a,b,c])) :- member(X, [a

    3热度

    2回答

    我想结合以前的堆栈溢出问题的一些纯谓词来做出我自己的谓词。 我想给出一个c的列表(它们与它们有相关的事实 - 'at')和一个'特征'项,它有一个操作符和一个'at'的阈值。我想分割c的列表,如果c没有相应的'at',它就会进入假分区,否则运算符会测试'at'来得到'c',然后分割适当的。 例如: ?-cpgpartition_ts_fs_feature([c1,c2,c3],Ts,Fs,feat

    2热度

    1回答

    我想计算列表的最小值,使用失败导致回溯。我如何改变min(Min,X,Min),使其工作。计算分 solve([Head|Rest], Ans) :- solve(Rest, Till), min(Ans, Head, Till). %min(X, A, B) X is the min of A, B min(X, X, Y) :- X =< Y. min(Y, X,

    2热度

    1回答

    我有这样的嵌套列表: list = [[1, 2, 3, 4], [2, 7, 2, 1], [3, 3, 7, 5], [4, 4, 1, 7]] 而且我想跳过此嵌套列表的第一个列表,每个列表的第一个元素。我希望它变成了这个样子: list = [[7, 2, 1], [3, 7, 5], [4, 1, 7]] 到目前为止,我有