1
我已經定義! (階乘)函數,並將其註冊爲算術函數和運算符,以便我可以執行:A是6 !.序言:宣佈運營商
現在我想定義!! (單數的階乘),但是同樣的方法 - 寫入子句,註冊arithmetic_function和operator,調用A是7! - 結果 語法錯誤:運營商預計
我應該如何,如果可能的話,註冊!運營商?
是的,我知道,!通常是削減。
我已經定義! (階乘)函數,並將其註冊爲算術函數和運算符,以便我可以執行:A是6 !.序言:宣佈運營商
現在我想定義!! (單數的階乘),但是同樣的方法 - 寫入子句,註冊arithmetic_function和operator,調用A是7! - 結果 語法錯誤:運營商預計
我應該如何,如果可能的話,註冊!運營商?
是的,我知道,!通常是削減。
!是一個所謂的獨奏字符,你不能有兩個連續。如果不是,你可以不寫,例如:
c :- !.
而是會必須寫:「」
c :- ! .
因爲否則會被解釋爲單個標記。
另外,如果你讓!是一個運算符,兩個版本的語法都是無效的(是的,SWI仍然接受它,但是例如GNU Prolog沒有)。你需要寫:
c :- (!).
因爲操作數是操作數需要加括號。而不是!,例如使用「f」和「ff」,或者爲你的用例安裝Unicode字符。
你可以發佈你的謂詞嗎? – 2012-03-23 17:32:57
我不認爲這是一個好主意,定義一個!運算符(既不是!!運算符) – gusbro 2012-03-23 17:50:18