2011-02-26 61 views
0

我知道我們可以使用atom_concat(Para1,Para1,Final).連接原子,Prolog中是否有任何可用於執行反向操作的函數,意思是它將輸入視爲原子並提供兩個原子,其中一個是原子的最後一個字符其次是剩下的一個。例如。關於級聯的查詢

?- rev_atom_concat(likes,Para1,Para2).
Para1 = like, Para2 = s

我不知道這是真的可能或不..?

+0

@larsmans:謝謝,我沒有意識到這個問題... – anilonwebs 2011-02-27 16:15:38

回答

2

您可以使用sub_atom。 sub_atom提取一個原子的一部分。語法是:

sub_atom(+Atom, ?Before, ?Len, ?After, ?Sub) 

原子是最初的原子; Sub子原子。提取以這種方式工作:

<************************ Atom ************************> 
<***** Prefix *****><***** Sub *****><**** Suffix *****> 
<-- before chars --><-- len chars --><-- after chars --> 

例如,提取的最後一個字符:

?- sub_atom(likes, _, 1, 0, S). 
S = s. 

對於爲例,提取所有字符,但最後一個:

?- sub_atom(likes, 0, _, 1, S). 
S = like.