I have a predicate:
neig(I, J, I1, J1):- I1 is I - 1, I1 >= 0, J1 is J. neig(I, J, I1, J1):- I1 is I + 1, not(I1 > 8), J1 is J. neig(I, J, I1, J1):- J1 is J - 1, J1 >= 0, I1 is I. neig(I, J, I1, J1):- J1 is J + 1, not(J1 > 8), I1 is I. neig(I, J, I1, J1):- I1 is I - 1, J1 is J - 1, I1 >= 0, J1 >= 0. neig(I, J, I1, J1):- I1 is I + 1, J1 is J + 1, not(I1 > 8), not(J1 > 8). neig(I, J, I1, J1):- I1 is I + 1, J1 is J - 1, J1 >= 0, not(I1 > 8). neig(I, J, I1, J1):- I1 is I - 1, J1 is J + 1, I1 >= 0, not(J1 > 8).
How to write the predicate all_neighs(I, J, L) , where L is a list and contains all the different elements [I1, J1] , such that neigh(I, J, I1, J1) ?