I did not want to be contradictory or force someone else to do my job; I just need some advice, sorry for the ambiguity.
I implemented it myself, but could you guys suggest improvements or better ways to do this? What I often do in Prolog is to write a predicate with a counter or a set of counters and get a predicate with fewer arguments to invoke sentences with extra arguments. This often ends up creating quite a lot of code. Anyway, here I just made my implementation:
item_at( N, L, Item ) :- item_at( N, 0, L, Item ). item_at( N, Count, [H|_], Item ) :- CountNew is Count + 1, CountNew = N, Item = H. item_at( N, Count, [_|T], Item ) :- CountNew is Count + 1, item_at( N, CountNew, T, Item ).
Any comments? Thanks :). Using:
?- item_at(3,[a,b,c,d,e],Item). Item = c ;
source share