failure-slice

    2熱度

    1回答

    沒有終止我有黑色和白色頂點的圖的一些程序: black(root). black(v1). black(v3). black(v4). edge(root,root). edge(v1,root). edge(v2,v1). edge(v3,v1). edge(v4,v3). edge(v5,v2). edge(v5,v4). edge(v6,v5). vertex(X

    1熱度

    1回答

    嘿,我有一個關於Prolog的相當簡單的問題。 %on(Block,Object). % clear(Object). block(b1). block(b2). block(b3). place(p1). place(p2). place(p3). place(p4). state1([clear(p2),clear(p4),clear(b2),clear(b3),on(b1

    3熱度

    3回答

    我從99 Prolog Problems工作問題26: P26 (**) Generate the combinations of K distinct objects chosen from the N elements of a list Example: ?- combination(3,[a,b,c,d,e,f],L). L = [a,b,c] ; L = [a,b,d] ;

    1熱度

    1回答

    加載使用SWI-Prolog的下面的程序和進入這類查詢作爲 cells([o,x,o,x,o], A). 或 cells(A, [o,x,o,x,o]). 的第一個結果似乎永遠是正確的,而後提交分號後,尋找更多的結果(並且我不知道在這兩種情況下是否應該有額外的結果),我得到了PROLOG SYSTEM ERROR分別提到了垃圾收集和全局堆棧錯誤。 regla(o,o,o,o). regl

    1熱度

    1回答

    我對prolog相當陌生,目前我正在閱讀一本讓我練習代碼的書。它負責刪除重複的內容。 注:我已閱讀其他stackoverflows,並且我知道如何刪除重複項,但我不明白爲什麼我的代碼不起作用。 (我已經選擇了一種不同的方法到其他計算器) 我創建了一個is_member謂詞,我相信它可以正常工作。 is_member(X, [Head,Tail]):- X == Head; is

    2熱度

    2回答

    我試圖通過將序列列表重新轉換爲BST來「顛倒」序列遍歷。 BST的謂詞形式爲node(Value,Left,Right)或leaf,所以空樹只是leaf,一個節點的樹是node(_,leaf,leaf)。 給定謂詞enumerate_bst(Elems,Bst),目標是將Bst與排序列表Elems的所有可能性匹配。例如(注setof/3): ?- setof(Bst,enumerate_bst([

    2熱度

    1回答

    給出了一組通過謂詞parent/2來表示父子關係的事實,當定義關係「祖先」(祖先)與謂詞pred1時有什麼區別/ 2和PRED2/2如下所示? pred1(X,Z) :- parent(X,Z). pred1(X,Z) :- parent(X,Y), pred1(Y,Z). pred2(X,Z) :- parent(X,Z). pred2(X,Z) :- parent(Y,Z), pred

    2熱度

    2回答

    我試圖匹配一些語句(例如001 [0,0,1],(1+(1/0))['(',1,+,' ( '1/0 ')', ')'],等等。 我自己做了下面的小DCG。 g3 --> s3. s3 --> e3. e3 --> eAdd. e3 --> eMin. e3 --> eMul. e3 --> eDiv. e3 --> n3. eAdd --> ['('],e3,['+'],e3,

    2熱度

    2回答

    在回答another question on StackOverflow(推廣一下)時,出現了這個問題,它生成了由一組有限的元素組成的所有序列,沒有重複出現。 正如鮑里斯在評論中正確指出的那樣,這個問題有很多現有的解決方案。然而,我對不使用累加器的解決方案感興趣(即,已經挑選出的元素的列表與新比較的元素進行比較),而是使用dif/2語句代替。 爲了說明,在我的後續程序中,我有4個元素,經過4次遞歸

    1熱度

    1回答

    我的目的是在Prolog中實現一個簡單的例子(僅適用於我自己)的傳遞性。 這是我的事實: trust_direct(p1, p2). trust_direct(p1, p3). trust_direct(p2, p4). trust_direct(p2, p5). trust_direct(p5, p6). trust_direct(p6, p7). trust_direct(p7,