Я хочу написать предикат split(List, Pivot, Result)
имеет место, когда Result
- это список подписок, которые List
делится на Pivot
. Например, split(['_', '_', '#', '_', '#', '_'], '#', [['_','_'], ['_'], ['_']])
- true
.Как разбить список в Prolog?
Мой код, как это и он не работает:
split(List, Pivot, Result) :-
split(List, Pivot, _, _, Result).
split(List, Pivot, Left, Right, X|Xs) :-
append(Left, [Pivot|Right], List),
!,
member(Pivot, Right)
-> X = [Left],
split(Right, Pivot, _, _, Xs)
; X = [[Left]|[Right]].
Я не думаю, что мой подход понятнее либо. Может ли кто-нибудь дать мне совет? Спасибо.
Я все еще пытаюсь понять ваш ответ, но это работает! Благодаря! – user3928256