Four ways of taking the productof a list