>>368

like368(List,NewList) :-
  findall(N2,(member(N1,List),N2 is N1 + 1),NewList).

?- like368([1,2,3,4,5],X).
X = [2,3,4,5,6]

findall/3は第二引数が偽になるまで第二引数全体をcallする。一回真になる度に
第一引数に指定された項をリストに積んでいく。第二引数が最終的に偽になったら
リストの収集を必ず成功裏に了える。積み終わったリストは第三引数と単一化される。