Logo has some of the basic language features you'd expect - variables, functions, and conditionals.

Variables

Define a variable using MAKE name value. Logo normally interprets any word as a procedure call, so to use a literal word you can prefix it with a double quote.

MAKE "A 8

You can use a variable by prefixing the name with a colon:

PRINT :A
8

Variables created with MAKE are global. The only local variables in Logo are procedure arguments.

Functions (Procedures)

Logo functions are called procedures, and they're defined like this:

TO HELLO
PRINT "HI
END

TO specifies the name of the function, the lines after are the function body, and it's all closed out with END. You can call a procedure by typing its name. You can also call a procedure from within another procedure. Logo handles recursion, so a procedure can call itself!

To run it, just type the procedure name:

?HELLO
HI

Procedure arguments are defined by listing them after the procedure name:

TO HEY "NAME
PRINT "HI
PRINT :NAME
END

If you want to delete a procedure, use the ERASE command.

ERASE "HEY

Conditionals

Logo's IF statement is straightforward: IF test list1

If test is true, run list1. You can add another list to the end (IF test list1 list2) and list2 will be run if test is false.

You can break this down a bit using TEST, IFTRUE, and IFFALSE. TEST test will save the result of test and use it for any calls to IFTRUE and IFFALSE.

These are equivalent:

IF :A=8 [PR [A IS 8]] [PR [A IS NOT 8]]

TEST :A=8
IFTRUE [PR [A IS 8]]
IFFALSE [PR [A IS NOT 8]]

Example

Let's put these together and draw something. First we'll define a square function:

TO SQUARE "LEN
REPEAT 4 [FD :LEN RT 90]
END

Try it out! SQUARE 50

How about a hexagon?

TO HEXAGON "LEN
REPEAT 6 [FD :LEN RT 60]
END

Now let's put them together and draw something.

REPEAT 20 [IF RANDOM 2=1 [SQUARE 40] [HEXAGON 30] RT 18]

RANDOM num will output a random number from 0 to num. Here we use it to decide whether to draw a square or a hexagon.

That's a pretty simple example, see what you can do with Logo! There are a lot more features and we can't cover them all here, check out the Logo manuals in Resources for a full reference.

This guide was first published on Jul 02, 2019. It was last updated on Jul 02, 2019. This page (More Logo) was last updated on Jul 16, 2019.