2012-04-06 57 views

回答

3

另一個ISO選項是sub_atom/5

sub_atom(Atom, Before, Length, After, Sub_atom)

?- sub_atom(bob, 0, _, _, bo). 
true. 

相比atom_concat/3,這避免了不必要的原子來表示後綴的產生。

+1

在用戶級別,是的,使用sub_atom/5可以避免不必要的原子。在實現級別上,根據Prolog編譯器的不同,sub_atom/5可能比atom_concat/3更慢,代價更高(創建中間原子的w.r.t)。如果檢查原子前綴是一種頻繁的操作,那麼可以檢查所使用的特定Prolog編譯器中的兩個內置謂詞的性能。 – 2012-04-24 16:28:20

4

只需使用atom_concat/3,這是一個ISO Prolog標準內置謂詞。

相關問題