* 안녕하세요, 터보 프롤로그에서 C = A-> 입력 할 경우 구문 오류가 발생하면 목록의 요소를 다른 목록으로 바꾸려고합니다. 결과 목록 (L1) 요소를 대체하는 목록 이 터보 프롤로그에서 일 것입니다 경우 모르겠어요프롤로그가 목록의 다른 요소를 다른 목록으로 바꿉니다.
concat([],L,L).
concat([H|T],L,[H|Res]) :- concat(T,L,Res).
repl([],_,_,[]).
repl([Val|T],Val,Repl,Res) :- repl(T,Val,Repl,Temp), concat(Repl,Temp,Res).
repl([H|T],Val,Repl,[H|Res]) :- repl(T,Val,Repl,Res).
,하지만 그것을 잘 작동합니다 : 도움을
domains
list=integer*
element=i(integer);l(list)
lista=element*
predicates
repl(list,integer,list,lista)
clauses
repl([],A,B,[]):-!.
repl([C|L],A,B,**[l(|L1])**:- C=A,repl(L,A,B,L1),!.
repl([C|L],A,B,[i(C)|L1]):- repl(L,A,B,L1),!.
감사, 문제 해결 (사용 dasblinkenlight 코드)
제 3의 답장에서 L1 (누가 유형이 요소인지), 그 머리에 모든 목록 B (누가 요소의 대체인지)를 넣으려고합니다. – user1741409
"구문 오류"가보고되면서 일반적인 구문 오류입니다. 힌트 : [l (| L1] – NotAUser