core10k: Nice try at creating obfuscated Scheme code. When your preferred language can't express things as cleanly as Scheme, such a smokescreen is a good idea.

I'm assuming the definition of the non-standard print function you used is something like this:

(define print
  (lambda args
    (for-each display args)
    (newline)))

If you want to print the contents of a list, the function is defined thus:

(define (all-is-better mylist)
  (for-each print mylist))

There's no reason why you have to associate sequential numbers with a list in order to use it. In Scheme, you simply deal with the first item on the list and then the rest of the list. You wanted to deemphasize the needlessnes of a numeric index, so you made that index part of the output.

Some languages index starting at 1, some zero. Here's Scheme code that handles either case.

(define (number-list mylist starting-index)
  (if (pair? mylist) ; i.e. non-empty list
      (begin
        (print starting-index ": " (first mylist))
        (number-list (rest mylist) (+ starting-index 1)))))

Oh yes, you wanted to always index at zero. Fine.

(define (all-is-well mylist) (number-list mylist 0))