我试图将字符串转换为一个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:我不能按
假设这里是一个二叉搜索树,并且给出了规则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
我在课堂上学习Prolog,并显示了一种自动按分号键直到没有更多解决方案的方法。我试图在谷歌上搜索,但我使用findall的例子,这不是显示。有没有其他方法可以在Prolog shell中自动按;? 例如,显示所有解决方案而不反复按;。 X = one ;
X = two ;
X = three ;
X = four.
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
我想了解为什么与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) :-