我需要獲取字符串的最後一個字符。例如:獲取Prolog中字符串的最後一個字符
?- last_char('abde', X).
X = 'e'
?- last_char('abdef', X).
X = 'f'
有人可以幫我嗎?我是Prolog的新手。
我需要獲取字符串的最後一個字符。例如:獲取Prolog中字符串的最後一個字符
?- last_char('abde', X).
X = 'e'
?- last_char('abdef', X).
X = 'f'
有人可以幫我嗎?我是Prolog的新手。
與sub_atom/5,一個非常方便的ISO內建一點幫助:
?- sub_atom(abdef, _, 1, 0, C).
C = f.
你可以使用name
和reverse
將字符串轉換到一個列表和背部:
last_char(S, X) :-
name(S, N),
reverse(N, [F|_]),
name(X, [F]).
根據在您的Prolog版本中,您可能必須導入reverse
謂詞的list
庫,例如SICStus的:- use_module(library(lists)).
。
偉大的解決方案,我總是通過閱讀你的答案來學習關於Prolog的新東西。我仍然發佈了我的嘗試,因爲它更具可讀性:) – l4mpi
確實很棒!非常感謝你。我是Prolog的新手,我試圖自己學習。你真的幫助了我,謝謝! – renatov
@ l4mpi:謝謝。我非常詳細地回答,特別是關於原子與字符串的區別... – CapelliC