나는 사실 ("이름", "성", "123") 내 기지 에이 사실을 가지고. 나는 간단하게이 질문을 씁니다 : 사실 (X, _, _). X에 대한 몇 가지 알 수없는 출력을 얻을. 이 값을 검색하는 방법이나이 출력을 가져 오는 방법은 무엇입니까? ? -fact (X, _, _). 출력 : 이름.프롤로그에서 문자열을 조작하는 방법은 무엇입니까?
미리 감사드립니다.
나는 사실 ("이름", "성", "123") 내 기지 에이 사실을 가지고. 나는 간단하게이 질문을 씁니다 : 사실 (X, _, _). X에 대한 몇 가지 알 수없는 출력을 얻을. 이 값을 검색하는 방법이나이 출력을 가져 오는 방법은 무엇입니까? ? -fact (X, _, _). 출력 : 이름.프롤로그에서 문자열을 조작하는 방법은 무엇입니까?
미리 감사드립니다.
프롤로그의 문자열은 작은 따옴표로 묶습니다. 큰 따옴표를 사용하면 문자 코드 목록을 원한다는 의미입니다.
?- is_list('abc').
false.
?- is_list("abc").
true.
?- write("abc").
[97,98,99]
true.
?- write('abc').
abc
true.
SWI - 프롤로그에서는 string_to_atom/2
를 사용할 수 있습니다
?- assert(fact("name", "surname", "123")).
true.
?- fact(Tmp, _, _), string_to_atom(Tmp, X).
Tmp = [110, 97, 109, 101],
X = name.
고맙습니다. 그게 내가 찾고있는 것입니다. – Fuzion
이 시도,
| ?- assert(fact("name", "surname", "123")).
yes
| ?- fact(X,_,_).
X = [110,97,109,101];
| ?- fact(_X,_,_),name(Y,_X).
Y = name;
시도 사실 (X를, _, _). (마지막 두 인수는 밑줄입니다.) – gusbro