prolog-toplevel

    7热度

    5回答

    我试图将字符串转换为一个ASCII码列表,像这样: 7 ?- string_to_list("I'm a big blue banana in space!", C). C = [73, 39, 109, 32, 97, 32, 98, 105, 103|...]. 8 ?- 这不会给我的整个列表,你可以看到,但我需要它。 This solution does not work:我不能按

    0热度

    1回答

    假设这里是一个二叉搜索树,并且给出了规则above(X,Y)-X直接在Y之上。我也创建了规则root(X) - X没有父母。 然后,我试图弄清楚这棵树中节点的深度。 假设树的根节点是“r”所以我得到了事实level(r,0)。为了执行规则level(N,D) :-,我在想的是它应该在这里有一个递归。 因此,我试图 level(N,D): \+ root(N), above(X,N), D is D

    1热度

    1回答

    我在课堂上学习Prolog,并显示了一种自动按分号键直到没有更多解决方案的方法。我试图在谷歌上搜索,但我使用findall的例子,这不是显示。有没有其他方法可以在Prolog shell中自动按;? 例如,显示所有解决方案而不反复按;。 X = one ; X = two ; X = three ; X = four.

    0热度

    2回答

    开始 - 这是课程,所以我不能发布代码。这更关于prolog如何输出答案,而不是“我的代码是否正确”? 我创建了一个谓词,返回图之间的所有简单路径,给定一个边的列表。 例如,paths(a, X)将返回以a开头的所有可能路径。 说我的KB是: 边(a,b)。 edge(b,c)。 edge(c,d)。 edge(d,f)。 然后我应该得到X = [[a], [a,b], [a,b,c], [a,b

    1热度

    1回答

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

    0热度

    1回答

    我有一个prolog文件,它将给定的谓词bongard(A,X)与给定的背景事实进行分类。 片段的规则: bongard(A,[neg]) :- triangle(A,C), \+ in(A,C,D), !. bongard(A,[neg]) :- \+ triangle(A,C), !. ... 我执行这个程序,像这样:swipl -s file.pl -g "bongard(a, X)

    1热度

    1回答

    这是我的序言数据库代码。 :- dynamic myTable/2. init :- removeAll, asserta(myTable('avalue', 'another value')), asserta(myTable('avalue1', 'another value 1')), asserta(myTable('avalue2',

    1热度

    1回答

    may(_,[],[]). may(num(U),[est(C1,N1,NT1)|T1],[est(C1,N1,NT1)|T2]):- U =< NT1, may(num(U),T1,T2). min(_,[],[]). min(num(U),[est(C2,N2,NT2)|T3],[est(C2,N2,NT2)|T4]):- U > NT2, mi

    2热度

    1回答

    我想了解为什么与swipl的交互似乎不一致。 这是一个典型的例子。假设我有咨询的知识库,包括以下定义: acc_max([H|T], A, Max) :- H > A, acc_max(T, H, Max). acc_max([H|T], A, Max) :- H =< A, acc_max(T, A, Max). acc_max([], A, A). max([H|T], Max) :-

    1热度

    1回答

    所有关于如何禁用列表截断的问题,只好用一些这方面的variantion答案: ?- set_prolog_flag(toplevel_print_options, [quoted(true), portray(true), max_depth(100), priority(699)]). 对我来说,这确实不行,在这里看到: ?- length(L, 25). L = [_7572, _757