User Tools

Site Tools


logo:commands:queries

Queries

Test data or data contents.

COUNT

Counts the number of items in its input.

Syntax

COUNT word
COUNT list

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?(DEFINEDP)

Checks whether a procedure is defined.

Syntax

DEFINED? name

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?(EMPTYP)

Checks whether a name is empty.

Syntax

EMPTY? word
EMPTY? list

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?(LISTP)

Checks for its input being a list.

Syntax

LIST? object

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?(MEMBERP)

Checks if an object is part of another object.

Syntax

MEMBER? word-or-list word-or-list
(MEMBER? word-or-list word-or-list TRUE)

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?(NAMEP)

Checks whether its input is assigned a value.

Syntax

NAME? name

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?(NUMBERP)

Checks its input for being a number.

Syntax

NUMBER? object

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?(PRIMITIVEP)

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

Syntax

PRIMITIVE? word

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? (PROCEDUREP)

Checks its input for being a user-defined procedure.

Syntax

PROCEDURE? word

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? (WORDP)

Checks its input for being a word.

Syntax

WORD? object

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
logo/commands/queries.txt · Last modified: 2018/08/27 03:39 (external edit)