Aqua is an opinionated domain-specific language. It's structured with significant indentation.
-- Comments begin with double-dash and end with the line (inline)func foo(): -- Comments are allowed almost everywhere-- Body of the block expression is indentedbar(5)
Values in Aqua have types, which are designated by a colon,
:, as seen in the function signature below. The type of a return, which is yielded when a function is executed, is denoted by an arrow pointing to the right
-> , whereas yielding is denoted by an arrow pointing to the left
-- Define a function that yields a stringfunc bar(arg: i16) -> string:-- Call a functionsmth(arg)-- Yield a value from a functionx <- smth(arg)-- Return a yielded results from a function<- "return literal"
Subsequent sections explain the main parts of Aqua.