2013-11-01 122 views

回答

4

sub_atom/5,一個非常方便的ISO內建一點幫助:

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

偉大的解決方案,我總是通過閱讀你的答案來學習關於Prolog的新東西。我仍然發佈了我的嘗試,因爲它更具可讀性:) – l4mpi

+0

確實很棒!非常感謝你。我是Prolog的新手,我試圖自己學習。你真的幫助了我,謝謝! – renatov

+1

@ l4mpi:謝謝。我非常詳細地回答,特別是關於原子與字符串的區別... – CapelliC

1

你可以使用namereverse將字符串轉換到一個列表和背部:

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

根據在您的Prolog版本中,您可能必須導入reverse謂詞的list庫,例如SICStus的:- use_module(library(lists)).

+0

我嘗試使用名稱/ 2和反向/ 2,但它返回字符的代碼,而不是字符本身。 – renatov

+1

@renatov這就是爲什麼我第二次使用'name'將其轉換回來。您可以將字符串或字符列表用作輸入參數,將另一個用作輸出參數。 – l4mpi

相關問題