+ 1 Basic Scripting Technology

Getting Started: An introduction to the basics.

Intro to Felix for C++ programmers: Another introduction to the basics which focuses on C++ interaction.

Functions: A quick summary of functions and procedures.

Strings: Core string handling.

Regexps: Regexps with Google RE2.

Polymorphism: Basic parametric polymorphism in Felix.

+ 1.1 Functional Programming Technology

Pattern Matching: pattern matching and the discriminated union construction.

Arrays: Core array handling.

Lists: Using the infamous list data structure.

+ 1.2 Imperative Programming Technology

Streams: a powerful construction translating spatial sequences into temporal ones.

Objects: a highly dynamic object system loosely modelled on Java.

Coroutines: a mechanism for ultra-high speed synchronous context switching where control is exchanged explicitly.

Fibres: a mechanism for ultra-high speed synchronous context switching where control is exchanged using channels.

+ 1.3 Concurrent Programming Technology

Faio: Handling Asynchronous Events.

Pthreads: Pre-emptive threading and Concurrency.

Networking: A brief introduction to TCP/IP with sockets.

+ 1.4 Meta Programming Technology

Domain Specific Sub-Languages Extending the Felix grammar library.

+ 1.5 C++ Integration Technology

Binding C Embedding C and C++ in Felix.

Programming with Plugins Dynamic Loading stuff.

Raw address manipulation Low level programming capabilities.

The Garbage Collector Considerations for programming with Garbage Collection.

Embedding Felix. How to embed Felix, particularly in foreign event loops.

+ 2 Advanced Topics

Categorical type system: Generalised Arrays.

The fixpoint combinator for eager languages using open recursion.

Some parser combinators by Shayne Fletcher.

+ 2.1 Appendices

Scalar Types: a summary of the core scalar types and a set of operations on them.