저는 프롤로그를 처음 사용하는 사람이므로 매우 익숙하지 않습니다. SWI-prolog에서 swipl을 사용하고 있습니다. 문자열이 구불 구불 왼쪽 브래킷으로 시작 ('{')과 오른쪽 구불 구불 한 브래킷 (로 끝나는 '}'나는 온라인 읽고 일부 answers 프로그램에 저를 이끌어가}프롤로그 : 문자열의 첫 번째와 마지막 문자가 좌우의 괄호 ('{'& '}')인지 확인합니다.
경우
나는 확인하려면 . 문자열이 왼쪽 구불 구불 브래킷로 시작하는지 확인하기 위해 내 지식 기반에
start_left_squiggle([Letter|_]):-
Letter = '{'.
에 따라하지만이 기능을 실행하면 나는 그것을 true를 반환 할 것으로 예상 할 때, 나는 거짓 얻을.
?- start_left_squiggle('{hello').
false.
또한, 마지막 문자가 삐걱 거리는 괄호인지 확인하기 위해 올바른 것으로 보이는 answers은 다음을 코딩하도록 유도합니다.
last_char(str, X):-
name(S, N),
reverse(N, [F|_]),
name(X, [F]).
end_right_squiggle(Werd):-
last_char(Werd, Last),
Last = '}'.
함수를 실행할 때 다시 false가 반환됩니다. 당신이해야 할
?- end_right_squiggle('hello}').
false.
'안녕하세요} ''여기 당신이 태초과 끝에서 두 중괄호가없는 . –
@LuaiGhunim 두 기능에 대한 테스트를 별도로 수행하고 있습니다. 첫 번째 함수는 문자열이 '{'로 시작하는 경우 true를 반환하고 두 번째 함수는 문자열이 '}'로 끝나면 true를 반환해야합니다. 문자열의 끝은 첫 번째 함수와 관련이 없으며 문자열의 시작은 두 번째 함수와 관련이 없습니다. – Jacob
쉬운 방법은 문자열을 목록으로 변환 한 다음 추가 작업을 수행하는 것입니다. –