forked from livecode/livecode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfunction.lcdoc
More file actions
65 lines (43 loc) · 3.32 KB
/
Copy pathfunction.lcdoc
File metadata and controls
65 lines (43 loc) · 3.32 KB
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Name: function
Type: control structure
Syntax: function <functionName> [<parametersList>] <statementList> end <functionName>
Summary: Defines a custom function <handler>.
Introduced: 1.0
OS: mac,windows,linux,ios,android
Platforms: desktop,server,web,mobile
Example:
function myFunctioneturn "test"
end myFunction
Parameters:
functionName (string): A string up to 65,535 characters in length.
parametersList: The parametersList consists of one or more parameter names, separated by commas.
statementList: The statementList consists of one or more LiveCode statements.
The result: >*Note:* As the <result> is a global property, if you do not explicitly <return(control_st)> a value, then <the result> will not change, but reflect the last engine command, engine function or command or function handler that did return a value.
Description:
Use the <function> <control structure> to implement a custom function.
Form:
The first line of a <function> <handler> consists of the word "function" followed by the function's name. If the function has any <parameter|parameters>, their names come after the function name, separated by commas.
The last line of a <function> <handler> consists of the word "end" followed by the function's name.
The purpose of a function is to compute a value and return it to the handler that called the function. The function's value is returned by a return <control structure> within the <function> <handler>.
A function handler can contain any set of LiveCode statements. Most functions contain a return <statement>, which <return(glossary)|returns> the value to the <caller|calling handler>. This example of a custom function uses two <parameter|parameters> and <return(glossary)|returns> a <string> :
function reversedName firstName,lastName
-- firstName and lastName are parameters
put lastName,firstName into constructedName
return constructedName
end reversedName
You create a custom function by writing a function handler for it. When you use the function in a script, the function call is passed through the message path. When it reaches the object whose script contains the <function> <handler>, the <statement|statements> in the <handler> are <execute|executed>.
A custom function is called by name, just like a built-in function, as part of an expression. For example, this handler calls the custom function above:
on mouseUp
ask "What is your first name?"
put it into firstParam
ask "What is your last name?"
put it into secondParam
put reversedName(firstParam,secondParam) into field "Name"
end mouseUp
A function can call itself. The following example calls itself to compute the factorial of an integer:
function factorial theNumber
if theNumber = 1 then return 1
else return theNumber * factorial(theNumber -1)
end factorial
>*Note:* To declare a function that is local to the script it is contained in, prefix the declaration with <private>. For more information about this see the dictionary entry for the <private keyword>.
References: private keyword (keyword), end (keyword), $ (keyword), private (keyword), string (keyword), param (function), functionNames (function), result (function), paramCount (function), the result (function), exit (control_st), return (control_st), return (glossary), handler (glossary), execute (glossary), statement (glossary), control structure (glossary), parameter (glossary), caller (glossary)