Это список и два элемента. Сначала мне нужно было проверить, являются ли эти два элемента частью списка. Затем проверьте, появляется ли элемент Elem2
после Elem1
в данном списке. Предикат, который я использую, - weiterHinten
с тремя аргументами.Предикат, чтобы проверить, находится ли элемент за другим элементом в списке
Пример: проверьте, что c находится после b в списке [a, c, b, a].
weiterHinten([H|T],H,B).
weiterHinten([H|T],A,B):-weiterHinten(T,A,B).
weiterHinten([a,c,b,a],b,c).
Эта цель будет необходимо вернуться false.I знать, что после того, как я нахожу заголовок списка будет равен A
мне нужно проверить, если B
является членом хвоста списка. Если это так, значит, B после A
в списке, но я не уверен, как это сделать.
Я пробовал:
weiterHinten([H|T],H,B):-member(B,T).
Но всякий раз, когда я звоню цели он всегда возвращает истину для меня не имеет значения, если Elem2
был после Elem1
Я не уверен, что ваш вопрос. Это может помочь, если вы укажете, что означает «он не работает таким образом» на самом деле означает; что он делает. В любом случае, я пытался ответить, дайте мне знать, помогло ли это. – user7610
Я имел в виду, что всякий раз, когда я вызывал цель, он всегда возвращался для меня, независимо от того, был ли Elem2 после Elem1 в списке или нет. Например, эта цель:? - weiterHinten ([a, c, b, a], b, c). вернулись ко мне верно, даже если это не так. – UserMeli