Terrapin Resources

Terrapin Logo 4 has been discontinued! Our new Terrapin Logo version is much more powerful and modern; we strongly recommend that you update to our latest release of the Logo programming language.

Queries

Test data or data contents.

COUNT

Counts the number of items in its input.

Syntax

Description

COUNT reports the number of elements in its input. If its input is a word, COUNT reports the number of characters. If the input is a list, COUNT reports the number of elements in the list.

Example

COUNT “ELEMENTARY Result: 10 COUNT [ELEMENTARY] Result: 1 COUNT [[MT. WASHINGTON] [MT. RAINIER] [MAUNA LOA]] Result: 3

DEFINED?

Also: DEFINEDP

Checks whether a procedure is defined.

Syntax

Description

DEFINED? reports TRUE if the input is a name of a primitive procedure or a user-defined procedure; otherwise it reports FALSE. Compare with PROCEDURE?, which reports TRUE only if the input is a user-defined procedure, and PRIMITIVE?, which reports TRUE only if the input is a built-in command.

Example

DEFINED? “FORWARD Result: TRUE

EMPTY?

Also: EMPTYP

Checks whether a name is empty.

Syntax

Description

EMPTY? reports TRUE if the input is the empty word (“||) or the empty list ([]); otherwise, it reports FALSE.

Example

MAKE “FRUIT “|| EMPTY? :FRUIT Result: TRUE MAKE “FRUIT [PAPAYA] EMPTY? :FRUIT Result: FALSE

LIST?

Also: LISTP

Checks for its input being a list.

Syntax

Description

LIST? reports TRUE if its input is a list; otherwise, it reports FALSE. See also TYPEOF, NUMBER? and WORD?.

Example

LIST? [GREEN BLUE] Result: TRUE LIST? “GREEN Result: FALSE LIST? [] Result: TRUE

MEMBER?

Also: MEMBERP

Checks if an object is part of another object.

Syntax

Description

MEMBER? reports TRUE if the first input is an element of the second input; otherwise it reports FALSE.

If the second input is a list, MEMBER? compares each element of the list. It does not scan any sub-lists, unless it is caled with a third, optional input set to TRUE.

Example

MEMBER? “A “ABC Result: TRUE MEMBER? [INSIDE] [A [B [INSIDE] C] D] Result: FALSE (MEMBER? [INSIDE] [A [B [INSIDE] C] D] TRUE) Result: TRUE

NAME?

Also: NAMEP

Checks whether its input is assigned a value.

Syntax

Description

NAME? reports TRUE if the input is a name of a variable; otherwise; it reports FALSE. See also TYPEOF, LIST?, NUMBER?, and WORD?.

Example

ERASE “ANIMAL NAME? “ANIMAL Result: FALSE MAKE “ANIMAL “CAT NAME? “ANIMAL Result: TRUE

NUMBER?

Also: NUMBERP

Checks its input for being a number.

Syntax

Description

NUMBER? reports TRUE if its input is a number; otherwise it reports FALSE. Note that Logo treats quoted numbers or numbers that have been put together as numbers as well. See also LIST?, NAME?, and WORD?.

Example

NUMBER? WORD “4 “1 Result: TRUE NUMBER? 41 Result: TRUE NUMBER? [41] Result: FALSE NUMBER? FIRST [41] Result: TRUE NUMBER? 4.1 Result: TRUE

PRIMITIVE?

Also: PRIMITIVEP

Checks its input for being a built-in procedure or macro.

Syntax

Description

PRIMITIVE? reports TRUE if the input word is the name of a built-in Logo command; otherwise, it reports FALSE. User-defined procedures are not considered primitives; hence PRIMITIVE? reports FALSE when given their names as input. Compare with DEFINED?, which reports TRUE for both primitives and procedures, and PROCEDURE?, which reports FALSE for primitives and TRUE for user-defined procedures. All these commands report similarly for both buried and unburied procedures.

Example

PRIMITIVE? “FD Result: TRUE PROCEDURE? “FD Result: FALSE DEFINED? “FD Result: TRUE

PROCEDURE?

Also: PROCEDUREP

Checks its input for being a user-defined procedure.

Syntax

Description

PROCEDURE? reports TRUE if the input word is the name of a user-defined Logo procedure; otherwise, it reports FALSE. Compare with DEFINED?, which reports TRUE for both primitives and procedures, and PRIMITIVE?, which reports TRUE for primitives and FALSE for user-defined procedures. All these commands report similarly for both buried and unburied procedures.

Example

TO SAY.HELLO PRINT “HELLO END SAY.HELLO defined PRIMITIVE? “SAY.HELLO Result: FALSE PROCEDURE? “SAY.HELLO Result: TRUE DEFINED? “SAY.HELLO Result: TRUE

WORD?

Also: WORDP

Checks its input for being a word.

Syntax

Description

WORD? reports TRUE if its input is a word; otherwise it reports FALSE. See also LIST?, NAME?, and NUMBER?.

Example

WORD? 123 Result: TRUE WORD? “FD Result: TRUE WORD? [FD] Result: FALSE