**I am not interested in the detection collision.**

I am used to the method of having two counters in two for loops with java like so:

The first loop parses over all the objects and contains the second loop. Its counter is the index of the current object being checked against all other objects.

The second for loop parses over all unchecked objects. Its counter is the index of the unchecked object currently being checked against the object being looked at by the first loop.

Pseudo code:

```
for(i++)
  for(int j = i, j++)
   collides(objects[i], objects[j)

```

How is this implemented in Clojure?

I am very used to using commands like `map` that do not have a counter, and I am wondering if this approach actually needs a counter. If there is a way to do this without a counter that would be preferable.

I also want to make clear that I do not wish to implement with time `n^2`. Rather I want to have the time `n^2/2` method which checks only the unchecked objects for collision.