Skip to content

Imports and libraries

tim-hardcastle edited this page Nov 5, 2023 · 37 revisions

Imports

Imports are introduced by the import headword.

A line in the import section can only have two forms: either simply a path to a library, expressed as a string:

import

"lib/strings.ch"

In this case the functions in the library will be in the strings namespace, e.g. strings.toUpperCase.

Alternatively, it can be a pair consisting of the path and a preferred namespace:

import

"lib/math.ch"::"mathlib" // Has namespace 'mathlib'.
"lib/fmt.ch"::""         // Has no separate namespace.

Libraries

Producing the standard libraries is a matter of wrapping Charm functions around Go functions, and so can be done easily and even automatically. This also means that the kind people at Google have already tested, optimized, and documented the library functions for me, my role consisting of (a) theft (b) giving them camelCase names.

A world library for doing basic IO is imported into every script as standard.

Besides world, this version of Charm comes with four standard libraries: strings, math, fmt, and regexp, imported as in the examples above.

The following pages are in this section:

🧿 Pipefish

Clone this wiki locally