序言非均勻列表
回答
的Turbo Prolog的要求列表元素是一個單一的類型。 但是有一個解決方法 - 你只需要定義一個可以代表整數和符號的單一類型。您可以通過定義複合域來完成此操作,其中每種不同的類型都使用不同的函子進行包裝。因此,舉例來說:
mixed_type = i(integer); s(symbol).
mixed_list = mixed_type*.
的缺點是,你需要周圍的每一個列表元素的函子,這是一個有點尷尬:
[s(a), i(2), i(3), s(b), s(c)]
是的,在Prolog中沒有類型。你必須寫引號大寫字母: [ 'A',2,3, 'B', 'C' 'd', 'E',F,G]
OK OK,但我怎麼把它定義爲一個域名?因爲當我嘗試將符號與整數混合在一起時,它給了我:「類型錯誤:錯誤的對象類型」 –
@AdiUlici您可以給出一些上下文嗎?聽起來像是閱讀列表中抱怨類型的列表,而不是Prolog本身。 –
好吧,如果我想創建一個整數列表,我創建一個域'list = integer *',但是如果我想用整數和符號創建一個列表,我該怎麼寫呢?我忘了提及,我使用了一個較老的prolog:Turbo Prolog 2.0 –
Prolog的僅具有一種數據類型,所以每個列表是同質的。
Prolog中的每個元素只是一個術語。 a
是一個術語,a(x,y)
是一個術語,3
是一個術語,並且在語言中沒有任何東西可以區分它們。當然,大量的內置謂詞根據類型進行區分 - 你不能期望從X is 1 + a
得到答案 - 但是在語言本身中沒有區別。
因此,要回答你的問題,你可以把絕對任何你想在你的名單,其中包括以上所有的 - 下面是有效的Prolog:
L = [a, a(x,y), 3, X is 1 + a].
當然有* *操作歧視類型... – CapelliC
@CapelliC當然有很多內置的謂詞有一個類型的概念,作爲圖書館的一部分,並非語言的真正組成部分。在純粹的Prolog中,我唯一可以算作「操作」的東西是規則查找和術語統一。 –
- 1. 非均勻插值
- 2. 非均勻量化
- 3. elm解碼非均勻陣列
- 4. js圖表非均勻x值
- 5. GridView拉伸ImageView非均勻
- 6. 非均勻文字縮放
- 7. 非均勻網格浮動
- 8. 五彩/非均勻漸變
- 9. Python:使用列表理解的非均勻陣列
- 10. 將非均勻分佈轉化爲均勻分佈
- 11. 從非均勻數據創建均勻分佈的示例
- 12. Matlab/Python:非均勻時間序列的功率譜密度
- 13. 均勻分佈的列表項
- 14. Progress Tracker CSS - 列表項目不均勻
- 15. Powerpoint VBA - 均勻分佈列
- 16. 默認均勻(陣列)值
- 17. GridBagLayout中不均勻的列
- 18. 在gnuplot中處理非均勻抽動
- 19. 的Python把非均勻線成字典
- 20. 像素的非均勻偏移
- 21. 非凸均勻網格三角剖分
- 22. 在Matlab於imagesc()的非均勻軸
- 23. 具有非均勻離散密度
- 24. 非均勻間隔數據的熱圖
- 25. 非均勻隨機數生成器
- 26. 球體和非均勻物體交點
- 27. 非均勻隨機發生器
- 28. 繪製非均勻間隔軸
- 29. 使用SIMD的非均勻比較
- 30. 非均勻分佈的隨機數組
謝謝@Nick,這正是我需要的!祝你有美好的一天! –