-
Notifications
You must be signed in to change notification settings - Fork 4
Home
This wiki documents the Pipefish programming language. Its sections are grouped thematically, rather than in the order of a tutorial: that is, after the introductory section we look at the type system all in one go, then functional Pipefish, then imperative Pipefish, and then all the standard libraries, with a little advanced material saved for the end; whereas to learn the language you would prefer to absorb a little of the type system, a little functional Pipefish, a little imperative Pipefish, one or two of the standard libraries, and so on round again.
However, it is at present the best resource for learning Pipefish, and we hope that by reading it selectively and out of order the interested beginner will find it sufficient.
- Pipefish: a high-level view. This explains the goals and design principles of the language.
- Style guide. This gives best practices for the style in which one should write Pipefish code.
- Functional core, imperative shell. A synopsis of the language paradigm.
- The whys of Pipefish. This explains the reasoning behind some lower-level design choices which are sufficiently unusual as to need explanation.
🧿 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