我需要获取字符串的最后一个字符。例如:
?- last_char('abde', X).
X = 'e'
?- last_char('abdef', X).
X = 'f'
有人可以帮帮我吗?我是Prolog的新手。
答案 0 :(得分:4)
在sub_atom / 5的帮助下,一个非常方便的ISO内置:
?- sub_atom(abdef, _, 1, 0, C).
C = f.
答案 1 :(得分:1)
您可以使用name
和reverse
将字符串转换为列表并返回:
last_char(S, X) :-
name(S, N),
reverse(N, [F|_]),
name(X, [F]).
根据您的Prolog版本,您可能需要为list
谓词导入reverse
库,例如SICStus :- use_module(library(lists)).
。