# Statements and functions

This topic describes the differences between statements
and functions in BASIC and provides working definitions of variables,
constants, labels, spaces, and program formatting.

If the syntax requires that the instruction be followed
by a set of parentheses (optionally containing an argument or arguments),
then it is a function. For example, these are functions:

```
abs(num.exp)
rnd(num.exp)
iconv(str.exp, conv.exp)
```
Any instruction that does not have to be followed by a
set of parentheses is most often a statement. For example:

```
print x
input y
execute sentence
```
There is at least one exception to the above rule. One
variation of the locate() function is considered
a statement, even though the format of the syntax is like a function.

Another feature of statements is that they tend to *stand alone*. For example:

```
execute sentence
print array<10,1>
```
Functions, by contrast, do not stand alone. They are either
used as part of an expression within a statement:

```
"raise = rnd(20)"
```
or output immediately:

```
"crt int(amount)", "print abs(balance)"
```
A BASIC program is composed of statements made up of variables,
constants, expressions, and functions.

BASIC statements can
contain arithmetic, relational, and logical expressions. These expressions
are formed by combining specific operators with variables, constants,
or BASIC intrinsic functions.

The value of a variable can change
dynamically throughout the execution of a program. A constant, as
its name implies, has the same value throughout the execution of a
program.

An intrinsic function performs a predefined operation
on the supplied parameters. In BASIC programs, each physical line
usually contains only one statement. This is done for ease of reading
and tracking of logic.

More than one statement can be placed
on a program line by separating each statement with a ; (semicolon). Statements that end with then or else on a line create a block or multiline structure.

Labels can be placed at the beginning of any BASIC statement.
A statement label can be numeric or alphanumeric.

Spaces appearing
in the program line that are not part of a literal are ignored. Spaces
and blank lines can be used freely within the program for purposes
of appearance.

---
Source: https://d3codex.com/pickbasic-flashbasic/statements-and-functions/ - part of the D3Codex reference.
