Table of Contents

  • INTRODUCTION 1
  • GETTING STARTED W/DOOM EMACS & LISP 2
  • LISP FUNDAMENTALS 3
  • EMACS FUNDAMENTALS 4
  • THE LISP IDE 5
  • STRUCTURED EDITING 6
  • BEYOND LISTS 7
  • THE LOOP MACRO 8
  • ERRORS & CONDITIONS 9
  • MACROS 10
  • ORGANIZING CODE 11
  • THE ECOSYSTEM 12
  • MONEY LIBRARY 13
  • ACCOUNTING LIBRARY 14
  • DEPLOYING 15
  • RESOURCES 16

Table of Contents

  1. INTRODUCTION
    1. WHY I WROTE THIS BOOK
    2. ALMIGHTY
    3. IS AI ALMIGHTY?
  2. GETTING STARTED W/DOOM EMACS & LISP
    1. INSTALL & SETUP ON MACOS
    2. INSTALL & SETUP ON LINUX
    3. INSTALL & SETUP ON WINDOWS
    4. EMACS DICTIONARY
    5. SURVIVAL EMACS
    6. SURVIVAL LISP COMMANDS
    7. SPEEDING UP W/KEYBINDINGS
    8. NEED HELP?
  3. LISP FUNDAMENTALS
    1. SYNTAX & GRAMMAR
    2. SYMBOLS
    3. FUNCTIONS
    4. LISTS
    5. CONTROL FLOW
    6. ITERATION
    7. STRINGS & I/O
    8. PUTTING IT ALL TOGETHER: TIC-TAC-TOE
    9. COMMENTS & FEATURE EXPRESSIONS
  4. EMACS FUNDAMENTALS
    1. SUPPORT LEVEL DISCLAIMER
    2. SETTING EXPECTATIONS
    3. TEXT EDITING
    4. BUFFER NAVIGATION & MANAGEMENT
    5. WINDOW NAVIGATION & MANAGEMENT
    6. PROJECT NAVIGATION & MANAGEMENT
    7. LEARNING MORE
  5. THE LISP IDE
    1. SLY BACKTRACE NAVIGATION
    2. TRACING
    3. STICKERS
    4. Break Before Signaling Errors
    5. Quick Reference Tables
  6. STRUCTURED EDITING
    1. SLURPING AND BARFING
    2. DRAGGING FORMS FORWARD/BACKWARD
    3. NAVIGATING THE SEA OF PARENTHESES
    4. MORE RESTRUCTURING & NAVIGATING TOOLS
    5. QUICK REFERENCE TABLE
  7. BEYOND LISTS
    1. OOP
    2. HASH-TABLES
    3. ARRAYS
    4. STRUCTURES
  8. THE LOOP MACRO
    1. Simple Loops
    2. Iterating Over Lists
    3. Iterating Over Vectors and Strings
    4. Iterating over Hash-Tables
    5. Numeric Iteration
    6. Accumulation Clauses
    7. Conditional Clauses
    8. Termination
    9. Manually Updated Variable Bindings
    10. Parallel Iterating
    11. Destructuring
    12. The Step Binding
    13. Running Code Before The First Iteration Or After The Last Iteration
    14. Returning From Named Loops
    15. Combining Everything
    16. When to Use Something Else
    17. A Note on Style: Keywords vs Symbols
  9. ERRORS & CONDITIONS
    1. Signaling Conditions
    2. Defining Conditions
    3. Restarts
    4. Handling Conditions
    5. Preserving Your Stack
    6. Safely Unwinding
    7. Ignoring Errors
    8. Built-in Conditions
    9. Built-in Restarts
  10. MACROS
    1. The almighty-html </> macro
    2. The sxql macro
    3. The Coalton language
    4. Compilation Before Evaluation
    5. Defining Macros
    6. Redefining Macros
    7. Determining When To Use Macros
    8. Determining When Not To Use Macros
    9. Variable Capture & Hygiene
    10. Much More
  11. ORGANIZING CODE
    1. Packages
    2. Systems
    3. Styles of Factoring Packages & Systems
    4. The Great Debate: Package & System Best Practices
  12. THE ECOSYSTEM
    1. ULTRALISP
    2. QLOT
    3. OCICL
    4. VEND
  13. MONEY LIBRARY
    1. Project Setup
    2. A Money Type
    3. Making Money
    4. Improving Ergonomics
    5. Adding money
    6. The rest of the math functions
    7. Splitting
    8. Formatting for Human Consumption
    9. Adding Currencies
    10. Final Package Definition
  14. ACCOUNTING LIBRARY
    1. Requirements
    2. Testing & Examples
    3. Dependencies
    4. Vendor Your Dependencies
    5. Project Setup
    6. Introducing Our Dependencies
    7. Accounts
    8. Transactions
    9. Legs
    10. Playing around
    11. Account Balance
    12. Final Package Definition
    13. Writing an Example Accounting Application
  15. DEPLOYING
    1. EXECUTABLE CLI APPS
    2. EXECUTABLE WEB APP
  16. RESOURCES
    1. LISP
    2. EMACS