2016-10-25 6 views

답변

2

표기법. 당신의 초기화 파일에서

:- set_prolog_flag(double_quotes, chars).

문자로보다 편리하게 작업 할 수 :

다음

는 설정을 가지고 있다고 가정합니다.

예를 들어

:

 
no_braces([])  --> []. 
no_braces([C|Cs]) --> [C], { dif(C, '{') }, no_braces(Cs). 
no_braces(Cs)  --> ['{'], no_braces(_), ['}'], no_braces(Cs). 

샘플 질의와 답변 : 우리는 또한 매우 일반적인 쿼리를 게시 할 수 있습니다

 
?- phrase(no_braces(Ls), "abc"). 
Ls = [a, b, c] ; 
false. 

?- phrase(no_braces(Ls), "a{b}c"). 
Ls = [a, c] ; 
false. 

여전히 얻을 답변 : 지난

 
?- length(Ls0, _), phrase(no_braces(Ls), Ls0). 
Ls0 = Ls, Ls = [] ; 
Ls0 = Ls, Ls = [_2308], 
dif(_2308, '{') ; 
Ls0 = Ls, Ls = [_2474, _2480], 
dif(_2474, '{'), 
dif(_2480, '{') ; 
Ls0 = ['{', '}'], 
Ls = [] ; 
Ls0 = Ls, Ls = [_2640, _2646, _2652], 
dif(_2640, '{'), 
dif(_2646, '{'), 
dif(_2652, '{') . 

, 귀하의 예 :

 
?- phrase(no_braces(Ls), "a{1+{2}+3}b{4}c"). 
Ls = [a, b, c] ; 
false. 
관련 문제