Many Logo commands, including primitives and user-defined procedures, require information to operate and/or produce information when they conclude operation. Such information is one or more Logo object or the name that identifies the Logo object(s).
Information that a command requires before it can operate is called input. Information that a command produces after it operates is called output. Many commands that control the turtle's movement require input specifying where the turtle is to move. For example, FORWARD and BACK require a number specifying how far the turtle is to move. LEFT and RIGHT require a number specifying how many degrees the turtle is to turn.
Other commands produce or output information about the turtle. GETXY outputs a list of the turtle's current x and y coordinates. HEADING outputs a number specifying the turtle's current heading in degrees.
By using Logo objects as inputs to primitives and procedures, you can change or manipulate turtles, numbers, words, lists, property lists, and arrays. For example, when you give the turtle command FORWARD a valid number as an input, the turtle moves forward the specified number of turtle steps. Since the output of one procedure can be used as the input of another procedure, there is no limit to how you can use Logo to create and show graphics, store, manipulate, and display data, and play music.
The following commands are all equivalent in that they case the turtle to move forward 50 turtle steps:
? FORWARD 50
? MAKE "DIST 50 FORWARD :DIST
? FORWARD SQRT 2500
? FORWARD FIRST [50 100 150]