Functions - Third Style¶
In this chapter we are going to learn about the next topics :-
Define functions
Call functions
Declare parameters
Send parameters
Main Function
Variables Scope
Return Value
Recursion
Define Functions¶
To define new function
Syntax:
func <function_name> [parameters] ['{']
Block of statements
['}']
Example:
load "stdlib.ring"
func hello {
print("Hello from function \n")
}
Call Functions¶
To call function without parameters, we type the function name then ()
Tip
We can call the function before the function definition and the function code.
Example:
load "stdlib.ring"
hello()
func hello {
print("Hello from function \n")
}
Example:
load "stdlib.ring"
first() second()
func first { print("message from the first function \n") }
func second { print("message from the second function \n") }
Declare parameters¶
To declare the function parameters, after the function name type the list of parameters as a group of identifiers separated by comma.
Example:
load "stdlib.ring"
func sum(x,y) {
print(x+y)
}
Send Parameters¶
To send parameters to function, type the parameters inside () after the function name
Syntax:
funcname(parameters)
Example:
/* output
** 8
** 3000
*/
load "stdlib.ring"
sum(3,5) sum(1000,2000)
func sum(x,y) { print(x+y) }
Main Function¶
Using the Ring programming language, the Main Function is optional, when it’s defined, it will be executed after the end of other statements.
if no other statements comes alone, the main function will be the first entry point
Example:
# this program will print the hello world message first then execute the main function
load "stdlib.ring"
print("Hello, World! \n")
func main {
print("Message from the main function \n")
}
Variables Scope¶
The Ring programming language uses lexical scoping to determine the scope of a variable.
Variables defined inside functions (including function parameters) are local variables. Variables defined outside functions (before any function) are global variables.
Inside any function we can access the variables defined inside this function beside the global variables.
Example:
# the program will print numbers from 10 to 1
load "stdlib.ring"
x = 10 # x is a global variable.
func main {
for t = 1 to 10 { # t is a local variable
mycounter() # call function
}
}
func mycounter {
print("#{x}\n") # print the global variable value
x-- # decrement
}
Note
Using the main function before the for loop declare the t variable as a local variable, It’s recommended to use the main functions instead of typing the instructions directly to set the scope of the new variables to local.
Return Value¶
The function can return a value using the Return command.
Syntax:
Return [Expression]
Tip
the Expression after the return command is optional and we can use the return command to end the function execution without returning any value.
Note
if the function doesn’t return explicit value, it will return NULL (empty string = “” ).
Example:
load "stdlib.ring"
if novalue() = NULL {
print("the function doesn't return a value\n")
}
func novalue { }