The Ginger Project¶
This documentation is still very much work in progress
The aim of the Ginger Project is to create a modern programming language and its ecosystem of libraries, documentation and supporting tools. The Ginger language draws heavily on the multi-language Poplog environment.
Contents¶
Help Topics¶
- Serving Web Pages: CGI Integration
- div and mod: Built-in functions
- Dynamically Create New Virtual Machines
- Elements
- First Class Functions
- Garbage Collection with Weak References, Maps and O/S Resource Finalisation
- Implicit Forcing - Explicitly Defined Laziness
- Function Expressions, aka Lamba Expressions
- Lists in Ginger
- Maths Functions in Ginger
- Pervasive Multiple Values
- Packages and Imports
- Pattern Matching
- print, println & stringPrint: Built-in functions
- Dynamic Strings, Lists, Vectors, Elements and Maps
- Immutable Strings, Lists, Vectors, Elements and Maps
- Updateable Strings, Lists, Vectors, Elements and Maps
- The Rationale for Ginger’s Element Syntax
- Record Classes
- Tech Note on Shallow Immutability
- Strings
- Calling Built-in (a.k.a. System) Functions: SysApp
- The Ginger Toolchain
- An Introduction to Transreal Numbers
- Type Checking in Ginger
- Unary +
- Vector Classes
- Vectors
- Concatenation Operator: ++ (TODO)
- Symbols
- absent
- System Function: copy
- System Function: isDynamicObject
- System Function: isImmutableObject
- System Function: isUpdateableObject
- System Function: length
- showMe: built-in function
Common Syntax¶
Design Rationales¶
- The GSON Specification: Gingerised JSON
- Design Rules for the Spice Programming Language
- Aspirations and Design Principles for the
Ginger
Language, Interpreter and Virtual Machine - The Design of Loops in Ginger and Java
- The Background to GSON: Gingerised JSON
- The Design of Iterators in AppGinger
- One Logical Instruction Set, Multiple Implementations
- Patterns and Queries in the Common Syntax
- Syntax Neutral
- The Dollin Principle
- Why Multiple Dispatch?