2
A
回答
1
有關strings的討論,請看這裏,它們是SWI-Prolog特有的,但使用與原子相同的轉義規則。有很多方法可以在Prolog文本中將引號輸入到原子中:
1)將它們加倍。所以舉個例子,'不可能'是一個原子, 帶有單引號作爲第四個字符,並且沒有其他 單引號。
2)用反斜槓轉義它們。因此,例如 '不能'是與'不能'相同的原子。
3)使用八進制代碼和關閉反斜槓對它們進行字符編碼。因此,例如「可以\'不能'是與'不能'相同的原子。
4)使用十六進制代碼和關閉反斜槓對它們進行字符編碼。因此,例如'can \ x27 \ t'是與'不能''相同的原子。
上述可能性全部在ISO標準中定義。 Prolog的實現可能會定義更多的可能性。
再見
P.S。:以下是在SWI-Prolog的運行的例子,使用不同的 例如字符。在下面的第一個示例查詢中,您不需要 需要加倍,只能對周圍報價進行加倍。
下最後一個例子查詢顯示SWI-Prolog的特定的語法 未在ISO標準中,即使用反斜槓 U帶固定寬度的十六進制代碼:
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 7.1.33)
Copyright (c) 1990-2015 University of Amsterdam, VU Amsterdam
?- X = 'she said "bye"'.
X = 'she said "bye"'.
?- X = 'she said \"bye\"'.
X = 'she said "bye"'.
?- X = 'she said \42\bye\42\'.
X = 'she said "bye"'.
?- X = 'she said \x22\bye\x22\'.
X = 'she said "bye"'.
?- X = 'she said \u0022bye\u0022'.
X = 'she said "bye"'.
相關問題
- 1. swi-prolog [列表]
- 2. SWI-Prolog謂詞
- 3. swi prolog solve
- 4. SWI Prolog等價
- 5. SWI-Prolog規則
- 6. SWI Prolog查詢
- 7. swi prolog mysql + web
- 8. SWI Prolog Array Retrive [索引和元素]
- 9. 在SWI Prolog中引發錯誤
- 10. SWI Prolog的FUNC包
- 11. SWI Prolog數據庫
- 12. SWI Prolog ensure_loaded錯誤
- 13. SWI Prolog - 條件NOT?
- 14. Swi Prolog的關係
- 15. SWI-Prolog的否定
- 16. SWI-Prolog的益智
- 17. 列表在SWI-Prolog
- 18. Interprolog和SWI-Prolog的
- 19. SWI-Prolog語義Web庫和Python接口
- 20. Swi-Prolog - 根據定義查找X
- 21. Swi-Prolog:未定義的程序:random_permutation/2
- 22. - >在swi-prolog中的含義
- 23. 當在SWIPL中使用string_concatenate時轉義「\ =」swi-prolog
- 24. 在SWI-Prolog中關閉XPCE
- 25. SWI-Prolog的:在列表中
- 26. Swi Prolog,卸載源文件
- 27. SWI-Prolog xml_write到變量
- 28. SWI-Prolog的怪遞歸寫
- 29. SWI-Prolog的選項處理
- 30. SWI Prolog的排序程序
你也可以考慮使用'atom_string/2',例如:'? - atom_string(monkey,String).'導致'String =「monkey」'。 – 2014-10-22 09:55:35
謝謝你的回答。我得到了解決方案。我完全錯誤的做法。這是從SWI6到SWI7的變化。我再次安裝了SWI6.6,現在它完美運行。 – Tim 2014-10-22 10:51:20
@Tim:對於雙引號列表,SWI7中有一些特定的非ISO更改。 – false 2014-10-22 11:33:15