행렬이 이고 인덱스가 [1,N]
및 [M,N]
인 요소의 위치를 전환해야합니다.프롤로그 과제에 대한 해답을 작성하십시오
업데이트
나는 프롤로그 정말 새로운 오전, 여기 반환 내 솔루션 거짓 :(
main([FirstRow|Tail],X):-
last(FirstRow, A),
last(Tail, LastRow),
last(LastRow, B),
skipLastItem(FirstRow,FirstRowWithoutA),
skipLastItem(LastRow,LastRowWithoutB),
append(FirstRowWithoutA,[B],FirstRowNew),
append(LastRowWithoutB,[A],LastRowNew),
assign([FirstRowNew],X),
skipLastItem(Tail,Middle),
appendAllElements(Middle,X),
append(X,LastRowNew,X).
appendAllElements([X|Tail],List):-
append(List,X,NewList),
appendAllElements(Tail,NewList).
appendAllElements([],_).
assign(Item,Item).
skipLastItem([_],[ ]) :- !.
skipLastItem([H|T],[H|S]) :-
skipLastItem(T,S).
먼저 솔루션을 작성하고 문제가있는 곳을 알려주십시오. –
저는 예, 누군가가 프롤로그에서 문제에 대한 해결책을 쓸 수 있다고 예측합니다. –
그래서 해결책을주었습니다. 도와 주실 수 있습니까? – Eugene