我知道我们可以使用atom_concat(Para1,Para1,Final).
连接原子,Prolog中是否有任何可用于执行反向操作的函数意味着它将输入作为原子并提供两个原子,其中一个是最后一个字符原子和第二个是剩下的。例如
?- rev_atom_concat(likes,Para1,Para2).
Para1 = like, Para2 = s
我不确定这是否真的可能..?
答案 0 :(得分:2)
您可以使用sub_atom。 sub_atom提取原子的一部分。语法是:
sub_atom(+Atom, ?Before, ?Len, ?After, ?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.