One of the trickiest parts of learning to write and use procedures and functions is developing an accurate understanding of how parameters work. Think of parameters as variables in a procedure that are set by the procedure call. Just like any variable, parameters can hold any value. And, just like any other variable, when you use the name of a parameter, you are accessing the value that the parameter is holding.
...
hop(sue)# a procedure call using the sue turtle as the argument
When this procedure call happens, all the code from hop will be executed. Any time we encounter the parameter turtleName, we will use the argument - sue in its place. This process of giving the procedure information by specifying arguments is known as passing parameters to the procedure.
This system allows the procedure to work with any turtle. We can call hop(buster) to run hop and when we do so, turtleName will mean the turtle named buster.
Some people call parameters the formal parameters and arguments the actual parameters. We will stick to parameters and arguments to avoid confusion about what we mean when we just say “parameters”.
Try running this program below. It defines the hop procedure. Then, the main part of the program makes two turtles, has them mark their starting location, and then has them each do a hop before doing a forward movement.
The only variables you can use in a procedure are its parameters or new ones you create inside the procedures. It is an error to use variables from the main part of the program while writing the body of a procedure.