-
Notifications
You must be signed in to change notification settings - Fork 3
Control flow
The same conventions apply in Tutorial.
As mentioned in the introduction, Keg has a readable and intuative way of expressing if
statements, for
and while
loops. The form of an if
statement is:
[...1 ∆| ...2∆]
When an if
statement is run, the last item on the stack is popped, and if it is non-zero, ...1
is executed. If there is a |...2
, it is executed if the popped value is 0.
The form of a for
loop is:
(∆...1|∆ ...2)
When a for
loop is run, if ...1
is present, it will be evaluated as used as the number of times the loop will be run (if it isn't given, the length of the stack will be used). ...2
is the body of the for
loop, which will be executed.
The form of a while
loop is:
{ ∆...1|∆ ...2}
When a while
loop is run, ...1
(if given) will be the condition of the loop (if it isn't present, 1
will be used as the condition of the loop) and ...2
will be executed until the given condition is false.
One of the special features of Keg is user-defined functions, which are defined using the following form:
@name ∆n∆ | ...ƒ
Where:
name
= the name of the function (note that it needs to be one full word, and that it can't contain any @
's)
n
= the number of items popped from the stack
...
= the body of the function
If n
isn't present, no items will be popped from the stack, and all code in the function will be applied to the main stack