1. Yacas under the hood
1.1 The Yacas architecture
1.2 Startup, scripts and .def files
1.3 Object types
1.4 Yacas evaluation scheme
1.5 Rules
1.6 Examples of using rules
1.7 Structured programming and control flow
1.8 Additional syntactic sugar
1.9 Using "Macro rules" (e.g. NFunction)
1.10 Macro expansion
1.11 Scope of variable bindings
2. Evaluation of expressions
2.1 The LISP heritage
2.2 Yacas-specific extensions for CAS implementations
2.3 Destructive operations
3. Coding style
3.1 Introduction
3.2 Interactions of rules and types
3.3 Ordering of rules
3.4 Writing new library functions
3.5 Reporting errors
4. Advanced example 1: parsing expressions (CForm)
4.1 Recursive parsing of expression trees
4.2 Handling precedence of infix operations
5. Yacas programming pitfalls
5.1 All rules are global
5.2 Objects that look like functions
5.3 Guessing when arguments are evaluated and when not
5.4 Evaluating variables in the wrong scope
6. Debugging in Yacas
6.1 Introduction
6.2 The trace facilities
7. Custom evaluation facilities
7.1 The basic infrastructure for custom evaluation
7.2 A simple interactive debugger
7.3 Profiling
7.4 The Yacas Debugger
8. Advanced example 2: implementing a non-commutative algebra
8.1 The problem
8.2 First steps
8.3 Structure of expressions
8.4 Implementing the canonical form
8.5 Implementing commutation relations
8.6 Avoiding infinite recursion
8.7 Implementing VEV()
9. GNU Free Documentation License