Table of Contents

  1. Getting Started: Variables, Functions, and Syntax
    1. Variables
      1. Declaration and Typing
      2. Mutability
      3. Tuples
    2. Conditionals
    3. Pattern Matching
      1. An Exercise in Matching
    4. Looping
      1. while
      2. loop
      3. for
    5. Expressions
    6. Functions
      1. Definition and Invocation
      2. Parameters and Return Values
      3. Yet More Exercise
    7. Program 1: Collatz
      1. The Collatz Conjecture
      2. Finding a Collatz Sequence
      3. Breaking Down the Code
      4. Final Exercises
  2. Starting to Corrode:
    Pointers, Memory, Strings, and I/O
    1. Memory Management
      1. Boxes
      2. Pointer Types
      3. Ownership
        1. Owned Boxes
        2. Borrowed References
        3. Pointer Mutability
        4. Freezing Objects
      4. Lifetimes
    2. Vectors and Strings
      1. Vectors
        1. Strings
        2. Exercises
      2. Basic I/O
      3. Working with Standard Input (stdin)
      4. Files
    3. Error Handling
    4. Example: Secret Sharing
      1. Splitter
        1. Joiner
  3. Multi-Purpose Maps:
    Structures, Traits, and Higher-Order Functions
    1. Structures
      1. Defining Structs
      2. Constructing Structs
    2. Traits
      1. Defining Traits
      2. Implementing Traits
    3. Higher-Order Functions
      1. Functions as Parameters
      2. Functions as Results
    4. Example: Mapping a List
  4. Tasks and Communication
    1. Task Properties
      1. Spawning a Task
      2. Task Communication
        1. Ports and Channels
      3. Multi-Tasking Map