Если хотите
my_sublist( [2,3,4], [1,2,3,4,5] )
... чтобы добиться успеха, но
my_sublist( [1,3,5], [1,2,3,4,5] )
... потерпеть неудачу, вы можете рассмотреть
my_sublist( Sublist, List ) :-
append( [_, Sublist, _], List ).
Обратите внимание, что если вы передадите переменную в качестве подсписка, при обратном отслеживании вы получите полный набор всех возможных подсписков списка, но в целом это будет включать несколько повторов пустого списка (поскольку пустой список может сочетаться со всеми другими перечисляет как впереди, так и позади них в операции добавления).