I think it's more than a hack. List comprehension is a way to look at list manipulations which comes from the functional paradigm of programming. It is interesting and instructional to see how it can be expressed in a heavily imperative language like C. I would say it's a teaching tool, not just a hack.