The surprise (as I understand it, and I remember it surprised me too reading 
the docs) is the automatic expansion of the arguments. The consistent way would 
be for `printStuff(lines)` above to provide 1 argument of type seq[string], in 
the same way each arg of `printStuff(lines, lines)` would do. As it is, a 
single "lines" argument results in an arbitrary length x, but two arguments 
result in x.len==2.

e.g. in Python, you have the same functionality, but you have to prefix the arg 
with a `*` to say "I wish to expand this list into an argument list and not 
pass it as a single argument", which is consistent with the use of `*` in 
similar contexts, and with the passing of any other individual argument.

Reply via email to