mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-19 14:00:35 +00:00
Fix introduced erroneous use of "canonical" back to original wording. Fix faulty description of proc params behavior. Remove 'null' return type in example.
This commit is contained in:
@@ -25,15 +25,16 @@ A parameter may be declared with a default value which is used if the caller
|
||||
does not provide a value for the argument.
|
||||
|
||||
.. code-block:: nim
|
||||
# b is optional, 47 is its default value
|
||||
proc foo(a, b: int = 47): int
|
||||
# b is optional with 47 as its default value
|
||||
proc foo(a: int, b: int = 47): int
|
||||
|
||||
Parameters can be declared mutable and so allow the proc to modify those
|
||||
arguments, by using the type modifier `var`.
|
||||
|
||||
.. code-block:: nim
|
||||
# "returning" a value to the caller through the 2nd argument
|
||||
proc foo(inp: int, outp: var int): void =
|
||||
# Notice that the function uses no actual return value at all (ie void)
|
||||
proc foo(inp: int, outp: var int) =
|
||||
outp = inp + 47
|
||||
|
||||
If the proc declaration has no body, it is a `forward`:idx: declaration. If the
|
||||
|
||||
@@ -54,7 +54,7 @@ blindly:
|
||||
.. code-block:: nim
|
||||
template mulIsCommutative{`*`(a, b)}(a, b: int): int = b*a
|
||||
|
||||
What optimizers really need to do is a *canonization*:
|
||||
What optimizers really need to do is a *canonicalization*:
|
||||
|
||||
.. code-block:: nim
|
||||
template canonMul{`*`(a, b)}(a: int{lit}, b: int): int = b*a
|
||||
|
||||
Reference in New Issue
Block a user