在Prolog中获取字符串的最后一个字符

时间:2013-11-01 20:23:38

标签: prolog

我需要获取字符串的最后一个字符。例如:

?- last_char('abde', X).
X = 'e'

?- last_char('abdef', X).
X = 'f'
有人可以帮帮我吗?我是Prolog的新手。

2 个答案:

答案 0 :(得分:4)

sub_atom / 5的帮助下,一个非常方便的ISO内置:

?- sub_atom(abdef, _, 1, 0, C).
C = f.

答案 1 :(得分:1)

您可以使用namereverse将字符串转换为列表并返回:

last_char(S, X) :-
    name(S, N),
    reverse(N, [F|_]),
    name(X, [F]).

根据您的Prolog版本,您可能需要为list谓词导入reverse库,例如SICStus :- use_module(library(lists)).