2013-11-01 3 views

답변

4

:

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

훌륭한 해결책은 항상 Prolog에 대한 새로운 것을 배웁니다. 나는 그것이 조금 더 읽기 쉽기 때문에 아직도 나의 시도를 게시했다 :) – l4mpi

+0

참으로 위대한 해결책! 고맙습니다. 나는 프롤로그에게 새로운, 나 혼자서 모든 것을 배우려고 노력하고있어. 너 정말 날 도와 줬어, 고마워! – renatov

+1

@ l4mpi : 감사합니다. 나는 원자와 문자열의 차이에 대해 자세히 다룬다 ... – CapelliC

1

당신은 name를 사용할 수 있고 reverse는 목록에 문자열을 변환하고 백업하려면 :

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

을 따라 Prolog 버전에서는 술어에 대해 list 라이브러리를 가져와야 할 수 있습니다 (예 : SICStus 용 :- use_module(library(lists)).

+0

나는 name/2와 reverse/2도 사용하려고 시도했으나 char 자체는 아니고 char의 코드를 반환했다. – renatov

+1

@renatov 그래서 이름을 두 번 다시 사용하여 변환했습니다. 문자열 또는 문자 목록을 입력 인수로 사용하고 다른 하나는 출력 인수로 사용할 수 있습니다. – l4mpi

관련 문제