working with prolog in school this week and wondering if anyone could lend a hand.

these are the methods i came up with so far:

The one I am working on now is finding the index of an element in a list. I was wondering if anything along the lines of using the contains method but just adding a counter at the end?

so the method is indexof(A,B,C). Where A is the index of B in C. So maybe even a different contains method that looks kinda like:

idk if you can catch my drift what i am trying to do.

but basically, since contains first checks if the element is the first element in the list then it does contain it.

so like if the z is less than 2 it is obviously 1'st in the list therefore it's index is 1.

otherwise, it recursively call it and then Z will increase so finally when B is the head of the list c and Z will be greater than or = to 2, A will be whatever Z is?

make sense?

Do you think im on the right track?

I just dont know exactly how to call contains using the list C!

Thanks in advance!

Edited by protzman - 10/23/12 at 9:13pm

these are the methods i came up with so far:

Code:

```
sizeof(0, []).
sizeof(X, [_|T]) :- sizeof(Y, T), X is Y+1.
sum(0,[]).
sum(S,[H|T]) :- sum(S1,T), S is H+S1.
average(A,B) :- B\=[],sizeof(Size,B),sum(Sum,B),A is Sum/Size.
contains([X|_],X).
contains([_|T],X):- contains(T,X).
```

The one I am working on now is finding the index of an element in a list. I was wondering if anything along the lines of using the contains method but just adding a counter at the end?

so the method is indexof(A,B,C). Where A is the index of B in C. So maybe even a different contains method that looks kinda like:

Code:

```
indexof(A,B,C):-
contains([X|_],X), ((Z =< 2, A is 1); (A is Z)).
contains([_|T],X):- contains(T,X), Z is Z+1.
```

idk if you can catch my drift what i am trying to do.

but basically, since contains first checks if the element is the first element in the list then it does contain it.

so like if the z is less than 2 it is obviously 1'st in the list therefore it's index is 1.

otherwise, it recursively call it and then Z will increase so finally when B is the head of the list c and Z will be greater than or = to 2, A will be whatever Z is?

make sense?

Do you think im on the right track?

I just dont know exactly how to call contains using the list C!

Thanks in advance!

Edited by protzman - 10/23/12 at 9:13pm