unification

    1熱度

    2回答

    當您調用member(Item, List)時帶有一個不合乎規格的列表,Prolog統一併返回一個包含項目的列表。我想要一條規則返回true/false並且不會嘗試統一。有這樣的規則嗎?

    0熱度

    1回答

    我學爲我的期末考試,我無法理解這FC算法: 我理解它的一部分,你的每個標準化規則。然後我想下一行是說每個theta滿足廣義Modus Ponens(p'_i Theta = p_i Theta),做...某事。那是什麼?我不太瞭解那部分後發生了什麼。 任何幫助表示讚賞。謝謝閱讀。

    4熱度

    1回答

    有可能查詢ghci的統一類型? 例如,如果我想知道(Int -> Bool)和(a -> Bool)之間的統一類型,我該如何查詢ghci? 我想解決的是練習13.23從第三版Haskell: The Craft of Functional Programming。 如何使用Haskell系統檢查兩個類型表達式 是否可以統一,如果有的話,他們的統一性是什麼?提示:你可以在Haskell虛擬 定義中定

    0熱度

    1回答

    我試圖理解爲什麼類型: (flip .) is: (a -> a1 -> b -> c) -> a -> b -> a1 -> c 首先,類型: flip: is (a -> b -> c) -> b -> a -> c (.): is (b -> c) -> (a -> b) -> a -> c 我將重命名變量更清晰在我的解釋中,所以類型: flip: is (ax -> bx -> cx) -

    5熱度

    2回答

    我有這個問題,我還沒有解決方案。如果我知道它存在相關的算法,我認爲這會有所幫助。 我正在尋找的算法可以幫助找到滿足函數返回的目標的參數。 例如,a works for b表示爲(a,b) Given: [ (a,b); (b,c) ] 功能works將確保與布爾值 let works a b -> true let works b c -> true 他們的關係現在我給 [ (a, "x

    3熱度

    2回答

    我試圖手動派生的(()foldr相似。) (.) ::(b1 -> c1) -> (a1 -> b1) -> a1 -> c1 foldr :: (a2 -> b2 -> b2) -> b2 -> [a2] -> b2 然後類型: b1 = a2 -> b2 -> b2 c1 = b2 -> [a2] -> b2 匹配我得到的類型: ((a2 -> b2 -> b2) -> (b2 -

    0熱度

    1回答

    我試圖型手動派生的(foldr相似()。)類型 foldr :: (a1 -> b1 -> b1) -> b1 -> [a1] -> b1 (.) ::(b2 -> c2) -> (a2 -> b2) -> a2 -> c2 然後: a1 ~ (b2 -> c2) b1 ~ (a2 -> b2) b1 ~ a2 所以我得到的(foldr (.)) :: (a2 -> b2) -> [

    2熱度

    2回答

    我試圖通過獲得的foldr (++) 類型推導我開始的 (.) (foldr(++)) (map (:)) 類型 foldr :: (a1 -> b1 -> b1) -> b1 -> [a1] -> b1 (++) :: [a2] -> [a2] -> [a2] a1 ~ [a2] b1 ~ [a2] b1 ~ [a2] 所以 foldr (++) :: [a2] -> [[a2]]

    2熱度

    1回答

    練習2.2在Warren's Abstract Machine: A Tutorial Reconstruction 詢問f的術語表示(X,G(X,A))和f(B,Y),然後進行統一在這些術語的地址上(分別表示爲a1和a2)。 我已經構造堆表示的條件,並有如下幾點: f(X, g(X, a)): 0 STR 1 1 a/0 2 STR 3 3 g/2 4 REF 4 5

    1熱度

    1回答

    我想學習Prolog考試。 根據我的幻燈片,算術表達式不與常量一致。 是否有原因? 例如 even(0). even(X) :- X>0, odd(X-1). odd(1). odd(X) :- X>1, even(X-1). ?-even(2). => false. 的0不與(X-1)統一。 所以我的問題是:在某些情況下,如果常量和算術表達式之間存在統一性,會出現問題嗎