iso-prolog

    0熱度

    2回答

    我讀書時遇到問題。 我看到一個程序使用謂詞「簡單」(我猜simple/1)。我不知道這個謂詞的含義是什麼,我在控制檯中找不到?-help(simple)。 但是,當我在控制檯某些查詢嘗試,它的工作是這樣的: 5 ?- simple(p(x)). false. 6 ?- simple(mia). true. 7 ?- simple(Mia). true. 8 ?- simple(f

    1熱度

    1回答

    我已經定義! (階乘)函數,並將其註冊爲算術函數和運算符,以便我可以執行:A是6 !. 現在我想定義!! (單數的階乘),但是同樣的方法 - 寫入子句,註冊arithmetic_function和operator,調用A是7! - 結果 語法錯誤:運營商預計 我應該如何,如果可能的話,註冊!運營商? 是的,我知道,!通常是削減。

    3熱度

    1回答

    我是prolog的新手,並嘗試學習如何編程。我想知道如何在Prolog中計算x^y,它們都是整數。 我知道一個事實,即它是這樣的: % exp(y,x,z) <- z is x**y

    2熱度

    2回答

    我最近在學習有關Prolog,我發現用於定義中綴運算符混淆的三種類型。 指定操作符的類型時,xfx,xfy和yfx有什麼區別? 我已經搜索了關於這個問題,並沒有發現任何有用的東西。 我試着在序言中輸入以下代碼: :- op(500,yfx,is_alive). is_alive(A,B) :- display([A,B]). :- op(500,xfy,is_alive2). is_aliv

    3熱度

    1回答

    我想實現在Eclipse中的Prolog一元程序,這裏是我寫的代碼的元編程 - :- dynamic go/1. sol(true):- !. sol((A,B)):- !, sol(A), sol(B). sol(A):- clause(A, Body), sol(Body). go(X):- X is 5. 現在,當我與sol(go(X)).查詢,我得到的錯誤accessing a

    1熱度

    1回答

    我試圖找到一種方法將列表追加到列表中的所有列表。 喜歡的東西: appendAll([a,b],[[q,w],[z,x]],X). X = [[a,b,q,w],[a,b,z,x]]. 我還是新的序言和嵌套列表都扔我了不少。 我在這個一直盯着幾個小時了: appendAll([], _, []). appendAll(_, [], []). appendAll([H1|T1], [H2|

    2熱度

    3回答

    我在Prolog中定義過程時遇到問題。 我有兩個源文件,並希望與他們兩個參考Prolog引擎。 這可以通過調用Prolog作爲swipl -g「['1.pl','2.pl']來完成。 這兩個文件都是用另一種編程語言編寫的另一個程序生成的,我無法事先預測文件的確切內容。 的問題是,在其中一個文件總是有一個規則 predicate1(X):-predicate2(X). 但是,有時候規則 pred

    3熱度

    3回答

    所以我被告知一個特定的謂詞必須在+,+模式下工作。 Prolog中的含義是什麼?

    1熱度

    3回答

    我有以下幾點: is_digit(X):-char_type(X,digit). 當我這樣稱呼它: is_digit(X)。 我得到的結果folloring: X='0'; X='1'; ... ; X='9' 我需要得到那些相同的結果,但不包括引號。對不起,如果這是一個簡單的問題,但我只是無法找到解決辦法。謝謝!

    2熱度

    3回答

    意味着 我看到在代碼中使用這樣的斜線: solution([X/Y|Others]) :- noattack(X/Y, Others). 但後來有時候我看到「/ 1」「/ 2」等在序言。 這些陳述(字符)是什麼意思?