I know I said, I’d start with the basics, Reuven, but please forgive me this once :)
Will do the rest, bottom up :)
Have started up with this, because I’m fascinated with how folks manage to build in so much functionality into short, easy to read statements.
To my mind, comprehensions are the pithy proverbs of the programming world.
So here goes …