-
Notifications
You must be signed in to change notification settings - Fork 4
Imports and libraries
In the section we look at the way that imports and modules work in Charm, and
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.
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 performing basic IO, file handling, and SQL interop, is imported into every script automatically.
Besides world, this version of Charm comes with four importable libraries: strings, math, fmt, and regexp, imported as in the examples above.
The following pages are in this section:
🧿 Pipefish is distributed under the MIT license. Please steal my code and ideas.
- Getting started
- Language basics
- The type system and built-in functions
- Functional Pipefish
- Encapsulation
- Imperative Pipefish
-
Imports and libraries
- The crypto/aes library
- The crypto/bcrypt library
- The crypto/rand library
- The crypto/rsa library
- The crypto/sha_256 library
- The crypto/sha_512 library
- The database/sql library
- The encoding/base_32 library
- The encoding/base_64 library
- The encoding/csv library
- The encoding/json library
- The files library
- The fmt library
- The html library
- The image library
- The image/bmp library
- The image/color library
- The image/jpeg library
- The image/png library
- The lists library
- The markdown library
- The math library
- The math/big library
- The math/cmplx library
- The math/rand library
- The net/http library
- The net/mail library
- The net/smtp library
- The net/url library
- The os/exec library
- The path library
- The path/filepath library
- The reflect library
- The regexp library
- The strconv library
- The strings library
- The terminal library
- The time library
- The unicode library
- Advanced Pipefish
- Developing in Pipefish
- Deployment
- Appendices