O que faz o método" mapa " em Ruby?

Sou novo na programação. Alguém pode explicar o que .map faria em: params = (0...param_count).map

foreach vs someList.ForEach () {}

Aparentemente, há muitas formas de iterar uma colecção. Curioso se há alguma diferença, ou por que você usaria uma manei ... uponho que, do nada, em vez do delegado anónimo que uso acima, teria um delegado reutilizável que poderia especificar...