My guess is that
for would be just redundant.
for syntax implies that we define a variable there. The same for function arguments - we don’t do it like this
fun foo(val param1: String, val param2: String)
(I assume you meant the opposite: it is
Because changing its value doesn’t make too much sense. Once again, this is similar to function parameters. We received some value from someone and even if we modify it, then with new function call / loop iteration we will just get another value.
Also, this is not really counter. Remember that
for in Kotlin isn’t based on counters, but on iterators (well, in some cases they are actually optimized by the compiler to use counters). If you need counters then use