prolog

    0熱度

    1回答

    我想將this Prolog code移植到Racket中的Datalog,使用this page底部的示例。 #lang datalog edge(a, b). edge(b, c). edge(c, d). edge(d, a). path(X, Y) :- edge(X, Y). path(X, Y) :- edge(X, Z), path(Z, Y). path(X, Y)?

    1熱度

    2回答

    我想要一個程序給出一個列表L,其中元素X出現三次,它返回一個包含它的NL列表一次。 例如,這個問題 ?- erase([1,2,3,1,6,1,7],1,NL). 應該返回 NL = [1,2,3,6,7] or NL = [2,3,1,6,7] or NL = [2,3,6,1,7] 附: 假設給定的列表不包含任何元素2,4或更多次。 所以,這是我的代碼,但是當我提出問題時它返回fals

    2熱度

    1回答

    :-consult(words.pl). % words is basically a big database of the % 30.000 most used words in the english language topsolution([], _, P) :- %basecase, in case the given list of letters is

    4熱度

    1回答

    我最近開始學習序言,但我很難用遞歸規則。我明白了簡單的規則,但我在這個例子中,我發現了一個計劃,讓所有元素的總和以列表的麻煩: addup([], 0). addup([FirstNumber | RestOfList], Total) :- addup(RestOfList, TotalOfRest), Total is FirstNumber + TotalOfRest

    0熱度

    1回答

    我對Prolog很陌生。我陷入了這個問題: 如果我有兩個列表,我如何檢查列表1是否包含第二個列表的所有元素,但它們不必相同。所以列表2可能包含更多的元素。 我知道我可以使用member/2來檢查某個元素是否在列表中。但是我檢查後不知道如何不包含這兩個列表的成員。例如: 如果我有列表A = [a,b,c,a]和列表B = [a,b,c,d,e],我首先檢查列表A中的第一個'a'是否在列表B中。顯然這

    2熱度

    1回答

    我需要一個分割給定集合爲子集 謂語我到目前爲止有: divide_set(S, Sd) :- length(S, L), between(1, L, N), length(Sd, N), append(Sd, S), forall(member(M, Sd), M \= []). 這給了我這些結果: ?- divide_set([a, b, c

    4熱度

    1回答

    有沒有辦法將序列化的float轉換成SWI-Prolog浮點數,最好不要放入C中(如果必須,我會這樣做)? 我正在解析一個二進制流(OSC協議)。我得到32位IEEE 754浮點數作爲4個'代碼'字符的列表。現在我想用普通的SWI-Prolog浮點數來統一它。

    -1熱度

    1回答

    我正在做一些練習來學習Prolog編程。然而,我無法弄清楚如何做到這一點: I need to solve this equation with a prolog program (click here). 我已經寫代碼: solveQuadratic([], []). solveQuadratic([a,b,c], Result) :- 「結果」必須是與2,1或0元素的列表,顯示這個方程的零點。

    1熱度

    1回答

    首先,我看到今天早些時候提出的這個相同的問題,我決定親自嘗試一下(並且遇到麻煩)。我希望沒關係,我爲此創建了一個新問題! 我試圖做一個prolog程序,解決二次公式X =( - b±√b 2 -4ac)/ 2a。實現的謂詞二次型([A,B,C],[Result])將a,b和c列表作爲第一個參數,並將結果列表作爲第二個參數。然而,名單給我帶來麻煩。我寫了這個代碼: quadratic([A,B,C]

    2熱度

    1回答

    我該如何構建一個列表成一個列表成交錯子列表單列表? like recons([[1,2],[3,4]],X)將給出X = [1,3,2,4]? 我一直試圖小時,我的代碼總是給我非常奇怪的結果或無限循環, 我的想法是這樣的: recons([[A|R],REST],List):- recons(R,REST), append(A,[R|REST],List). 我知道它完全錯