Functions are useful in programming because they reduce time and effort for writing the code again and again. A well written function code offers high reusability. This chapter explains you how to write and work with functions in LOLCODE.
A function is a set of statements that are executed all at once by calling that function. In LOLCODE, a function’s definition starts with the keyword “HOW IZ I” and the closing keyword is “IF U SAY SO”.
The syntax for writing a function in LOLCODE is−
HOW IZ I <function name> [YR <parameter/argument> [AN YR <other _arguments..> …]] <code block to execute / Set of statements to execute> IF U SAY SO
Consider the following important points when you are defining a LOLCODE function −
In LOLCODE, the function can accept only a certain fixed number of arguments as an input.
The arguments or parameters, are the identifiers that become a variable to the function.
Functions in LOLCODE can’t access any other values other than the values passed to them as arguments.
Return in coding means something that is given back. In programming, a function can return some value to the program when its execution is completed. In LOLCODE, functions return varying values as explained below −
FOUND YR <any_expression> returns the value of the expression when function block is executed completely.
GTFO returns no value (NOOB), which is similar to return 0 in other programming languages like C and Java.
If no other return statement is found, then IF U SAY SO is executed and the value in the IT variable is returned.
A function is defined in the body of program and is later called for execution. A function which accepts a given number of arguments is called as shown below −
I IZ <function_name> [YR <expression_One> [AN YR <expression_Two> [AN YR <expression_Three> ...]]] MKAY
While calling a function, the expression is formed by the function name, followed by the number of arguments that the function will accept. These arguments can be simple variables or any expressions. If a function accepts any expression instead of a simple value, then the expressions' values are calculated before the function is called.
Please remember that the number of arguments a function will accept, should be defined in the definition of the function.
HAI HOW DUZ I MAINUMBA I HAS A NUMBA GIMMEH NUMBA FOUND YR NUMBA IF U SAY SO VISIBLE MAINUMBA KTHXBYE
When you run the above code, it will ask for an input, and then when you submit the input, you’ll see the same as the result. For example, if we enter 55, it will print 55.
HAI 1.2 HOW IZ I MULTIPLY YR FIRSTOPERANT AN YR SECONDOPERANT FOUND YR PRODUKT OF FIRSTOPERANT AN SECONDOPERANT IF U SAY SO VISIBLE I IZ MULTIPLY YR 2 AN YR 3 KTHXBYE
The above function that performs multiplication of input operands will print the following output when you run it−
sh- 4.3$ lci main.lo 6
HAI 1.2 I HAS A STRINGARRAY ITZ A BUKKIT STRINGARRAY HAS A VAR17 ITZ "OBJECT1" STRINGARRAY HAS A VAR18 ITZ "OBJECT2" HOW IZ STRINGARRAY ACCESS YR VARIABLE FOUND YR STRINGARRAY'Z SRS VARIABLE IF U SAY SO I HAS A STRING ITZ "VAR17" VISIBLE STRINGARRAY IZ ACCESS YR STRING MKAY KTHXBYE
The output that the above code will produce is −
sh- 4.3$ lci main.lo OBJECT1