prolog-findall

    0熱度

    2回答

    我正在創建一個應該允許通過圖進行搜索的程序,但是當findall/3的調用評估爲false時,應該返回後繼節點列表的函數失敗。當我在find_successors函數之外嘗試findall函數時,它完美地工作,但由於某種原因,在find_successors函數中,它只是讀取false。通過圖形調試器,我甚至可以看到它找到所有的解決方案。下面的代碼: find_successors(Start,

    7熱度

    4回答

    我一直被委託在Prolog中實現一個findall版本,而不使用任何Prolog內置函數,除非沒有剪切 - 所以基本上在純Prolog中。 我試圖尋找所有直系子孫樹,並在列表中返回結果 parent(a, b). parent(b, c). parent(b, d). parent(e, d). 我至今是: find(X, L) :- find2(X, [], L). find2(X,

    3熱度

    1回答

    我想寫這個。 所以基本上是這樣的: paths(Result) :- findall(B, f1(B) AND f2(B), Result). 我不知道該如何表達「和」在一個目標的語句。 這可能嗎?

    0熱度

    2回答

    我,在這樣的文件「students.pl」由學生數據庫的知識基礎: % student(Name,Percent,List_of_Marks_in_3_subjects). student('abc',83,[80,80,90]). student('pqr',70,[70,60,80]). student('xyz',76,[80,70,80]). 我想從知識庫獲取每個學生謂詞和計算每

    5熱度

    1回答

    我正在爲AI和Fox類型的遊戲編寫AI。我的一個謂詞是這樣的: moveFox(+PrevState, -NextState, -PegList, +VisitedStates, -NewVisitedStates) 它需要一個遊戲狀態,並與狐狸移動。生成的狀態與NextState統一,實際移動與PegList統一。一切都按預期工作。 我正在計算所有移動'NextState的效用得分。爲了能夠

    0熱度

    1回答

    我使用findall獲得了一個特定的列表,然後想要計算它中的元素數量。 即 huntingbreeds(List) :- findall(Breedname, breed(Breedname,_,hunting), List). 這從我的數據庫[小獵犬,巴塞特]返回獵狗的需求列表。 但現在,如果我嘗試使用我的新謂詞算什麼? list_length([] , 0). list_len

    1熱度

    1回答

    剛想Prolog的一個小問題。說,我已經使用了內置的謂詞findall/3獲得列表,並使用變量X作爲我的輸出。 我不知道我怎麼會那麼另一個謂詞使用這個列表,如last/2找到此列表的最後一個元素。如果你可以包含一個很小的例子,這將有很大的幫助。

    1熱度

    1回答

    我最近拿起序言中,我試圖讓一個程序來找到著名謎題的解決方案騎士旅行 [這裏找到] 使用Warnsdorff算法我試圖從棋盤上的特定位置找到所有可能的移動,然後在移動完成後儘可能少地移動,然後重複該過程,但是我無法找到所述移動。 這裏是我到目前爲止的代碼 possibleKnightMove(I, J, I1, J1) :- I1 is I+1, J1 is J+2. possibleKnight

    4熱度

    3回答

    我試圖限定接納與自由變量單項,並返回這些變量的映射列表的謂詞,因此,例如,如果數據庫是 a(0,1). a(1,1). 的預計產量將 ?- eval(a(X,1),Maps). Maps = [[[X,0]],[[X,1]]]. ?- eval(a(X,Y),Maps). Maps = [[[X,0],[Y,1]],[[X,1],[Y,1]]]. 我一直在嘗試使用findall/3

    2熱度

    1回答

    我想翻譯下面的Haskell代碼的發現子表: -- sublistSums list sum returns a list of the sublists of list that add up to sum sublistSums :: [Int] -> Int -> [[Int]] sublistSums [] 0 = [[]] sublistSums [] _ = [] sublis