This is a quite nice construct. I had a somewhat similar problem to solve a couple of weeks ago and did not think about such a clever and concise solution. Having said that, the explicit loop I used was probably not less efficient. But I wish I had thought about such a solution as yours.
Rolf, if I may, a brief side question: which option of the debugger are you using for displaying directly last evaluated expression without having to print is explicitly? I mean, when you have this:
=> (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
what option do you use to have the second line above printed seemingly automatically? Thanks for your response, and sorry for being off-topic.