2
A
回答
3
另一個ISO選項是sub_atom/5
:
sub_atom(Atom, Before, Length, After, Sub_atom)
?- sub_atom(bob, 0, _, _, bo).
true.
相比atom_concat/3
,這避免了不必要的原子來表示後綴的產生。
4
只需使用atom_concat/3
,這是一個ISO Prolog標準內置謂詞。
相關問題
- 1. 如何知道ajax模式彈出窗口是否打開?
- 2. 如何知道內核代碼是否是原子?
- 3. 對於HTML頁面,是否可以知道原始地點?
- 4. 使用mpiexec開始的程序是否知道它是以mpiexec開始的?
- 5. 是否有可能知道活動是如何開始的?
- 6. 如何知道是誰開始線程
- 7. 如何以編程方式知道模塊是否是核心模塊?
- 8. 如何知道iOS是否打開wifi?
- 9. OL3 - 如何知道繪圖或交互是否開始
- 10. PHP:如何知道輸出是否已經開始?
- 11. 如何知道一項活動是否已經開始
- 12. 我如何知道故事板是否開始倒轉?
- 13. 我如何知道Google地圖是否開始加載拼貼?
- 14. Android:如何知道通知面板是否已經以編程方式打開?
- 15. 如何知道庫是否是子模塊
- 16. 是否有`iterate`以原始元素開始的原因?
- 17. 如何知道模型是否可行
- 18. JQuery UI Draggable - 如何知道元素是否可以初始化?
- 19. 如何知道$ string是否以','結尾?
- 20. 我如何知道是否有人打開了電子郵件?
- 21. 如何正確知道聲音開始播放的原因?
- 22. 如何輕鬆知道迷宮是否有從開始到目標的道路?
- 23. 如何知道cocoahttpserver何時開始
- 24. 如何知道請求何時開始?
- 25. 劍道 - 任何方式來知道模型字段是否髒?
- 26. 如何知道是否
- 27. 如何知道模糊的原因?
- 28. Dispatcher.BeginInvoke()是否以原子方式工作?
- 29. 如何知道是否處於靜音模式?
- 30. 如何知道我是否在羣集模式下運行Puma?
在用戶級別,是的,使用sub_atom/5可以避免不必要的原子。在實現級別上,根據Prolog編譯器的不同,sub_atom/5可能比atom_concat/3更慢,代價更高(創建中間原子的w.r.t)。如果檢查原子前綴是一種頻繁的操作,那麼可以檢查所使用的特定Prolog編譯器中的兩個內置謂詞的性能。 – 2012-04-24 16:28:20