首先(不幸的是)我们需要同意我们所说的“字符串”是什么意思。出于许多目的,最好和最便携的表示是“字符”(单字符原子)列表,尽管您的 Prolog 可能需要被告知这确实是您想要的表示:
?- set_prolog_flag(double_quotes, chars).
true.
现在,例如:
?- Number = "12345".
Number = ['1', '2', '3', '4', '5'].
要获取列表的最后两个元素,您可以使用广泛支持(尽管不是标准)append/3 谓词。你可以问 Prolog 一个相当于“有一些列表 _Prefix(我不关心)和一个包含两个元素的列表 LastDigits 的问题,它们附加在一起,等于我的 Number?”。
?- Number = "12345", LastDigits = [X, Y], append(_Prefix, LastDigits, Number).
Number = ['1', '2', '3', '4', '5'],
LastDigits = ['4', '5'],
X = '4',
Y = '5',
_Prefix = ['1', '2', '3'] ;
false.
这个号码的最后两位是['4', '5']。