0
A
回答
0
你可以跳過使用N個free_vars N個位置,並追加/ 3擺脫名單」的頭信息:
?- [user].
|: find(Needle, Haystack, Skip) :-
|: length(Header, Skip),
|: append(Header, Actual, Haystack),
|: memberchk(Needle, Actual).
|: % user://1 compiled 0,04 sec, 2 clauses
true.
?- find(3-X,[1-alfa,2-beta,3-gamma,4-delta,1-abba,2-bridge],1).
X = gamma.
?- find(3-X,[1-alfa,2-beta,3-gamma,4-delta,1-abba,2-bridge],3).
false.
?- find(3-X,[1-alfa,2-beta,3-gamma,4-delta,1-abba,2-bridge],2).
X = gamma.
如果有許多搜索到,該列表建立length(Header, Skip)
,最好做一次..
相關問題
- 1. 在Prolog中聲明和搜索列表的正確方法?
- 2. 搜索Prolog結構
- 3. Prolog搜索子列表的特定元素
- 4. 在Prolog中的簡單圖搜索
- 5. Prolog Path搜索指針
- 6. Prolog查詢無限搜索
- 7. 搜索列表的列表?
- 8. 如何使用下劃線變量搜索列表? (Prolog)
- 9. Prolog - 在同一元素上搜索兩個列表
- 10. 搜索列表中的
- 11. 搜索列表中的項目列表
- 12. 搜索列表中的元素列表
- 13. Prolog - 搜索元素列表,如果找到元素,則打印列表
- 14. 搜索列表
- 15. SWI-Prolog的:在列表中
- 16. Prolog中的列表操作
- 17. Prolog中列表的並置
- 18. Prolog中的列表移位
- 19. Prolog中的逆向列表
- 20. Prolog的列表中添加
- 21. Prolog中的列表長度
- 22. Prolog中的大小列表
- 23. 在Prolog中使用列表的列表
- 24. 列表中的Prolog追加列表
- 25. 忽略列表中搜索
- 26. 嵌套列表中搜索
- 27. 在列表中搜索
- 28. 在2D列表中搜索?
- 29. Sharepoint搜索列表中的所有列
- 30. swi-prolog [列表]
列表在Prolog中是順序的。除非你有一箇中間名單職位的參考,否則除非通過連續斬首(AKA「無聊的遞歸搜索」),否則你不能訪問它。 – Amadan
非常感謝! –