Skip to content
pannous edited this page Oct 13, 2026 · 6 revisions

In a closure or a charged definition, it is the first, implicit argument; otherwise it refers to self or the last result, which can be ambiguous (ambiguity).

# four ways to bind twice, one per line
twice := it*2       // charged: a function of one argument, twice(3) is 6
map [1 2 3] {it*it} // a block using it is a one-parameter closure: [1 4 9]
twice : it*2        // uncharged block; it is resolved where twice! runs
twice = it*2        // a value, now: it is self or the last result

Planned: it as the last result at the top level (card it-last-result); in a method it is self already.

Home

Philosophy •

data & code blocks

features

inventions

evaluation

reflection

W0 types, proved

keywords

standard library

use modules & cargo crates, script mode

iteration

switch & pattern matching

warnings & strict

tasks

time & units

html pages

the warp command

examples

todo : bad ideas and open questions

⚠️ specification and progress are out of sync

Clone this wiki locally