我試圖將字符串轉換爲一個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) :-