HOLE | Language | Program

A HOLE is a callback parameter — a gap the caller fills with a block of their own.

The grammar of a single HOLE line:

A HOLE keyword can live inside FUNCTION and HOLE keywords.

In a function, a hole is a gap the caller fills with a block of their own, declared after the function's inputs.

A hole appears in a function after all of that function's INPUT parameters. A function may declare several holes; each is one block the caller supplies.

Inside another hole, a nested hole makes the caller's block take a callback block of its own.

A hole may also sit inside another hole, after that hole's inputs: the block the caller passes in takes a callback block of its own.

A hole declares only its own parameters — the same parts a function's signature carries — because the body it runs is whatever the caller passes in. They appear in the same order: inputs first, then any nested holes.

The hole's indented INPUT lines, in order, are the arguments the callback block is given each time the function invokes it. These are plain forward inputs.

A hole may itself declare further HOLE s, after its inputs. The block the caller supplies then takes callback blocks of its own — a hole whose argument is itself a block.

The same example, rendered to each target.

An ordinary value parameter is an INPUT ; holes belong to a FUNCTION and are how UI components nest their content. See Ui . Back to the language .

Recommended articles