-A :dfn:`function` is a value which
is callable with a receiver and arguments , a nd returns a value.
+A :dfn:`function` is a value which ts a.
-A function can be called by a symbol or called directly.
+A :dfn:`function call` is an operation to a function, which takes a receiver and arguments, does the series of processing,
+and returns a value as the result.
-A function can be :dfn:`called by the symbol` of a variable
-which targets the function, using :token:`call expressions <call>`.
+:dfn:`Call a function` is a verb to denote a function call.
The example below calls a function
targetted by a variable named ``print_line``.
stdout.print_line('Hello!' 'UTF-8') # => Hello!
-When a function is called by a symbol,
-the function is acquired :ref:`dereferencing a variable <language-core-cru-variable>`
-of the owner with the specified symbol.
-The receiver and the arguments are passed to the function.
When the owner is not explicitly prefixed,
the current environment shall be used as the owner.
For example, these two lines are equivalent.
print_line('Hello!') # => Hello!
\env.print_line('Hello!') # => Hello!
-A function can also be :dfn:`called directly` without dereferencing a variable.
-In a Kink program, a function can be called directly using ``call`` function.
- $print_line.call('Hello!') # => Hello!
A function returns a value as a :dfn:`result` if it completes its work without throwing an exception.
In the next program, ``head`` function returns a string of the first two characters of "Hello!."