으로 대체하여 목록의 요소를 프롤로그로 대체하는 방법은 무엇입니까?목록의 요소를 Prolog
예 :
replace(2,[1,2,3,2,1],5,X)
가해야 모두 솔루션 :
X = [1,5,3,2,1]
X = [1,2,3,5,1]
으로 대체하여 목록의 요소를 프롤로그로 대체하는 방법은 무엇입니까?목록의 요소를 Prolog
예 :
replace(2,[1,2,3,2,1],5,X)
가해야 모두 솔루션 :
X = [1,5,3,2,1]
X = [1,2,3,5,1]
당신은 입력 목록을 반복하여 수행 할 수 있습니다
%replace(_, [], _, []).
replace(Element, [Element|Tail], NElement, [NElement|Tail]).
replace(Element, [CurElement|Tail], NElement, [CurElement|NTail]):-
replace(Element, Tail, NElement, NTail).
샘플 입력 : 첫 번째 절을 주석 처리를 제거하면
?- replace(2,[1,2,3,2,1],5,X).
X = [1, 5, 3, 2, 1] ;
X = [1, 2, 3, 5, 1] ;
또한 출력 목록이 변경되지 않은 솔루션 출력 남아있는 것 곳.
첫 번째 절 (주석 처리 됨)은 목록을 반복하는 기본 사례입니다. 대체 된 빈 목록의 목록은 빈 목록임을 나타냅니다.
두 번째 조항은 목록의 헤드가 요소와 통합되면 대체 된 요소와 나머지 요소 (꼬리)를 포함한다고 설명합니다.
세 번째 절은 재귀 적 단계입니다. 세 번째 절은 첫 번째 요소를 취해 목록의 뒷부분을 사용하여 재귀 적으로 호출하며, 출력은 재귀 호출의 결과와 연결된 요소입니다.
이 질문은 특정 시도에 대한 도움을 요청하는 것이 아니라 완전한 코드 솔루션을 요구하기 때문에 주제와는 거리가 먼 것처럼 보입니다. – lurker