1
위치 (1, list (1, list (2, nil)), Z)와 같은 데이터 구조에서 요소 X의 위치를 찾기 위해 퀴즈에 나왔습니다. Z = 3. 여기서 Z는 a의 데이터 구조에서 요소 X의 위치입니다 (예 : list, 1, list (3, nil)).이 술어가 작동합니까? 이것은리스트
position(X,list(nil),0). %empty list
position(X,list(X,T),1). %list with X as head or first element
position(X,list(H,T),Z):-
position(X,list(T,nil),Z1), %X is in tail of list (H,T)
Z is Z1 + 1.
예 ofCourse는 논리에서 의미 오류를 나타내지 만 position (X, [], 0)과 동일하지 않습니다. 위치 (X, [X | T], 1).위치 (X, [H, T], Z) : - 위치 (X, T, Z1), Z는 프롤로그의 미리 정의 된 목록 구조에 대해 Z1 + 1입니다. @andreapier –