Feather2 / documentation / Keywords.md
Keywords
Here are a list of Feather's keywords :
abstract, apply, as, break, catch, class, constructor, continue, do,
else, enum, finally, for, fun, if, in, is, import, include, interface,
init, library, meth, null, open, override, package, return, static, super,
this, throw, try, val, var, while, with.
You cannot use them as identifiers (i.e. as variable/field or function names).
The following type names can also be considered keywords (but they aren't implemented as such) :
void, bool, byte, char, short, int, long, float, double.
Note, functions are assumed to be void if no return type is specified.
So void is never seen in feather scripts.
apply, with
There are two odd keywords : apply and with.
They correspond to Kotlin's apply() and with() functions,
which take a lambda as their last parameter.
I really like using apply and wtih, but lambdas aren't supported yet.
So instead, I've hard-coded these functions into the language itself
(and therefore apply and with are keywords).
At some point, I hope to remove them as keywords, and replace them
with an extension function in the feather runtime (similar to Kotlin).