- Introduction
- Chapter 1: Getting started Where you will learn how to set up a development environment for Lux.
- Chapter 2: The basics Where you will learn the fundamentals of Lux programming.
- Chapter 3: Syntax and data-types Where you will learn what Lux code is made of.
- Chapter 4: Functions and definitions Where you will learn how to build your own Lux programs.
- Chapter 5: Control flow Where you will learn how to give intelligence to your code.
- Chapter 6: Types in detail Where you will learn the truth behind types.
- Chapter 7: Polymorphism a.k.a. interfaces and implementations Where types and values collide.
- Chapter 8: Functors and monads Where I will try to explain something really confusing, and you'll pretend you understand to avoid hurting my feelings.
- Chapter 9: Meta-programming Where we take a peek behind the curtains of the compiler.
- Chapter 10: Code and macros Where magic turns into science.
- Chapter 11: Syntax macros Where science turns into magic once more.
- Chapter 12: I/O Where you will learn how to interact with the outside world.
- Chapter 13: JVM inter-operation Where you will cross the great divide.
- Chapter 14: Concurrency Where you will harness the power of modern computing.
- Chapter 15: Persistent data structures Where you will learn a new way to organize your data.
- Chapter 16: Testing Where you will learn how to avoid annoying bug reports.
- Chapter 17: Cross-platform Lux Where you will sail to exotic foreign platforms aboard the S.S. Lux.
- Chapter 18: Extensions Where you will teach new tricks to an old compiler.
- Conclusion
- Appendix A: Import syntax
- Appendix B: Math
- Appendix C: Pattern-matching macros
- Appendix D: The art of piping
- Appendix E: Lux implementation details
- Appendix F: Implicit polymorphism
- Appendix G: Regular expressions
- Appendix H: Aedifex