Prolog 关于连接的查询

Prolog 关于连接的查询,prolog,Prolog,我知道我们可以使用atom_concat(Para1,Para1,Final)来解析原子。Prolog中是否有任何函数可以执行反向操作,即它将输入作为一个原子,并提供两个原子,其中一个是原子的最后一个字符,另一个是剩余的一个字符。例如 ?-rev_atom_concat(likes,Para1,Para2)。 Para1=like,Para2=s 我不确定这是否真的可行。您可以使用它。亚原子提取原子的一部分。语法是: sub_atom(+Atom, ?Before, ?Len, ?After,

我知道我们可以使用atom_concat(Para1,Para1,Final)来解析原子。Prolog中是否有任何函数可以执行反向操作,即它将输入作为一个原子,并提供两个原子,其中一个是原子的最后一个字符,另一个是剩余的一个字符。例如

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

我不确定这是否真的可行。

您可以使用它。亚原子提取原子的一部分。语法是:

sub_atom(+Atom, ?Before, ?Len, ?After, ?Sub)
原子是初始原子;亚原子。提取的工作方式如下:

<************************ Atom ************************>
<***** Prefix *****><***** Sub *****><**** Suffix *****>
<-- before chars --><-- len chars --><-- after chars -->
例如,要提取除最后一个字符以外的所有字符,请执行以下操作:

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

@拉斯曼:谢谢,我不知道这个问题。。。
?- sub_atom(likes, 0, _, 1, S).
S = like.