I am with mac up to the {} bit.
Think of "" as defining a string: "this is a string"
and {} as defining a block of code: {a=5;c=7;b=a+c}
They can sometimes be used interchangably - but sometimes not hence it is best to be clear on the distinction between a string and a block of code.
What I think was also implied by your question is how does the forEach command work. It works like this:
{block of code using _x} forEach array
It will run the block of code once for every element of the array where each element replaces the _x. So;
{_x setPos getPos player;[_x] join player} forEach [unit1,unit2,unit3]
will move each of the units to the location of the player and get them to join him. It is exactly like:
unit1 setPos getPos player
[unit1] join player
unit2 setPos getPos player
[unit2] join player
unit3 setPos getPos player
[unit3] join player
Except it is neater and easier to read, and also less error prone.