사용자가 작은 따옴표 붙은 문자열 (A)을 입력 할 수있는 기능을 가지고 있으며 하위 목록 (X)을 검색하여 해당 문자열을 포함하는 하위 목록을 반환합니다. 문자열 : 내가 ELSE 절에서 A 변수를 사용할 때Prolog : ELSE 절 내에서 문자열 데이터가 올바르게 표시되지 않습니다.
process(6, X) :-
nl, write('\tEnter student name or ID: '),
read(A),
% FIRST WE CHECK FOR A in the ID SLOT
member( [A,B,C] , X)
% IF TRUE, DISPLAY DATA THEN PASS X back to menu
-> write('\tID="'), write(A), write('", Name="'), write(B), write('", Grade='), write(C),nl,nl, menu(X)
% ELSE, WE CHECK FOR A in the NAME SLOT
; write(A), write(' not found in ID slot'), nl, checkNAME(A, X).
checkNAME(A,X) :-
member([B,A,C] , X)
% IF TRUE (A in NAME SLOT)
-> blah blah
% ELSE
; blah blah
내 문제는, 내가 정크 데이터 "L1_233"또는 w/E를 얻을이 제대로 작동에서 ELSE 절을 방지 할 수 있습니다. 나는 A의 복사본을 만들어 ELSE 절에서 사용하려고 시도했지만, 모든 것은 정크 데이터 복사본을 생성하는 것입니다. 변수 A가 IF CLAUSE에서는 작동하지만 ELSE에서는 작동하지 않는 이유는 무엇입니까? 감사합니다.
감사합니다. 항상 내 PC를 몇 시간 동안 쳐다 보지 않는 단순한 무언가. – GeorgeCostanza
@GeorgeCostanza 예, 여러 번 사실입니다! – lurker