aboutsummaryrefslogtreecommitdiff
path: root/doc/language/cpsc-keyword-function.7.md
blob: c37754cf38a421e6d280ca9a0ced9c9afd140834 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

% CPSC-KEYWORD-FUNCTION(7)

# NAME

cpsc-keyword-function - define a function that returns a value

# SYNOPSIS

```text
FUNCTION name(parameters) RETURNS type
    statements
    RETURN expression
ENDFUNCTION
```

# DESCRIPTION

Call a function in an expression as `name(arguments)`. A call may precede its
top-level definition. RETURNS specifies the result type; omitting it defaults
to INTEGER. RETURN supplies a value of that type. Whole-array results are
unsupported.

Parameters use `name : type`, optionally prefixed by BYVAL. BYVAL is the
default; BYREF is forbidden for functions (guide section 8.3).
Array parameters accept `ARRAY OF type` (one dimension) or
`ARRAY[lower:upper, ...] OF type` (integer literal bounds).
BYVAL arrays are copied. RETURNS, RETURN, BYVAL, and ENDFUNCTION belong here.

# EXAMPLE

```text
FUNCTION Double(Value : INTEGER) RETURNS INTEGER
    RETURN Value * 2
ENDFUNCTION
OUTPUT Double(4)
```

# SEE ALSO

[cpsc-language-overview(7)](cpsc-language-overview.7.md), [cpsc-keyword-procedure(7)](cpsc-keyword-procedure.7.md), [cpsc-keyword-call(7)](cpsc-keyword-call.7.md).