I understand that it marks the end of a set of varargs, but why can\'t it be implemented in such a way that doesn\'t require the nil?
Any varargs function requires someway to know how many parameters are present -- if you don't nil terminate, you would just need something else. In this case the obvious alternative is a length, but then you'd need to update the length argument everytime you changed how many items were in the array, and that could be cumbersome, or worse broken.
I am guessing you have an array that may contain nil?