The Mathematica Book Online
The Mathematica Book

The Mathematica book, is the classic Mathematica (Wolfram language) manual.
It was a comprehensive Mathematica manual, over one thousand pages. e.g. in 1996, third edition for Mathematica v3, is 1427 pages, that are shipped with every copy of Mathematica. I read it 3 times, cover-to-cover, in different years, in 1990s.
Since 2004, the book is no longer printed. It moved online.
Editions

- 1988 Mathematica: A System for Doing Mathematics by Computer, First Edition.
- 1991 Mathematica: A System for Doing Mathematics by Computer, Second Edition
- 1996 The Mathematica Book, Third Edition
- 1999 The Mathematica Book, Fourth Edition. Buy at amazon
- 2003 The Mathematica Book, Fifth Edition. Buy at amazon
The Mathematica Book, 5th Edition (2003)
The Mathematica Book, 4th Edition (1999)
The Mathematica Book, 3rd Edition (1996)
The Mathematica Book, 2nd Edition (1991)
Is it worthwhile to read the Mathematica Book today?
no.
- it is not practical to read the Mathematica book today.
- In 90s, you can.
- But now, it is not practical, because the Wolfram language is huge and span many fields.
- Instead, you just read the tutorial at Wolfram website. (or you can read mine)
- and read the documentation of the function or area you are interested as you go.
The Mathematica Book Chapters Online
Here i try to collect the book contents together as book Table of Contents. They are known as Tech Notes in the Wolfram Language online documentation.
Lists
Manipulating Lists https://reference.wolfram.com/language/tutorial/ManipulatingLists.html
- Constructing Lists
- Partitioning and Padding Lists
- Manipulating Lists by Their Indices
- Sparse Arrays: Manipulating Lists
- Nested Lists
Lists https://reference.wolfram.com/language/tutorial/Lists.html
- Making Lists of Objects
- Adding, Removing, and Modifying List Elements
- Collecting Objects Together
- Combining Lists
- Making Tables of Values
- Lists as Sets
- Manipulating Elements of Lists
- Rearranging Lists
- Vectors and Matrices
- Grouping and Combining Elements of Lists
- Getting Pieces of Lists
- Ordering in Lists
- Testing and Searching List Elements
- Rearranging Nested Lists
Expressions
Expressions https://reference.wolfram.com/language/tutorial/Expressions.html
- Everything Is an Expression
- Manipulating Expressions like Lists
- The Meaning of Expressions
- Expressions as Trees
- Special Ways to Input Expressions
- Levels in Expressions
- Parts of Expressions
Function
Functional Operations https://reference.wolfram.com/language/tutorial/FunctionalOperations.html
- Function Names as Expressions
- Selecting Parts of Expressions with Functions
- Applying Functions Repeatedly
- Expressions with Heads That Are Not Symbols
- Applying Functions to Lists and Other Expressions
- Working with Operators
- Applying Functions to Parts of Expressions
- Structural Operations
- Pure Functions
- Sequences
- Building Lists from Functions
Patterns
Patterns https://reference.wolfram.com/language/tutorial/Patterns.html
- Introduction to Patterns
- Functions with Variable Numbers of Arguments
- Finding Expressions That Match a Pattern
- Optional and Default Arguments
- Naming Pieces of Patterns
- Setting Up Functions with Optional Arguments
- Specifying Types of Expression in Patterns
- Repeated Patterns
- Putting Constraints on Patterns
- Verbatim Patterns
- Patterns Involving Alternatives
- Patterns for Some Common Types of Expression
- Pattern Sequences
- An Example: Defining Your Own Integration Function
- Flat and Orderless Functions
Patterns and Transformation Rules https://reference.wolfram.com/language/tutorial/PatternsAndTransformationRules.html
- Patterns
- Clearing and Removing Objects
- Assignments
- Transformation Rules
- Types of Values
Transformation Rules and Definitions https://reference.wolfram.com/language/tutorial/TransformationRulesAndDefinitions.html
- Applying Transformation Rules
- Immediate and Delayed Definitions
- Manipulating Sets of Transformation Rules
- Functions That Remember Values They Have Found
- Making Definitions
- Associating Definitions with Different Symbols
- Special Forms of Assignment
- Defining Numerical Values
- Making Definitions for Indexed Objects
- Modifying Built‐in Functions
- Making Definitions for Functions
- Manipulating Value Lists
- The Ordering of Definitions
Evaluation
Evaluation of Expressions https://reference.wolfram.com/language/tutorial/EvaluationOfExpressions.html
- Principles of Evaluation
- Loops and Control Structures
- Reducing Expressions to Their Standard Form
- Collecting Expressions during Evaluation
- Attributes
- Tracing Evaluation
- The Standard Evaluation Procedure
- The Evaluation Stack
- Non‐Standard Evaluation
- Controlling Infinite Evaluation
- Evaluation in Patterns, Rules, and Definitions
- Interrupts and Aborts
- Evaluation in Iteration Functions
- Compiling Wolfram Language Expressions
- Conditionals
Modularity and the Naming of Things
Modularity and the Naming of Things https://reference.wolfram.com/language/tutorial/ModularityAndTheNamingOfThings.html
- Modules and Local Variables
- Contexts and Packages
- Local Constants
- Wolfram Language Packages
- How Modules Work
- Setting Up Wolfram Language Packages
- Variables in Pure Functions and Rules
- Files for Packages
- Dummy Variables in Mathematics
- Automatic Loading of Packages
- Blocks and Local Values
- Manipulating Symbols and Contexts by Name
- Blocks Compared with Modules
- Intercepting the Creation of New Symbols
- Contexts
Strings and Characters
Strings and Characters https://reference.wolfram.com/language/tutorial/StringsAndCharacters.html
- Properties of Strings
- Special Characters in Strings
- Operations on Strings
- Newlines and Tabs in Strings
- Characters in Strings
- Character Codes
- String Patterns
- Raw Character Encodings
- Regular Expressions
Textual Input and Output
Textual Input and Output https://reference.wolfram.com/language/tutorial/TextualInputAndOutput.html
- Forms of Input and Output
- The Syntax of the Wolfram Language
- How Input and Output Work
- Operators without Built‐in Meanings
- The Representation of Textual Forms
- Defining Output Formats
- The Interpretation of Textual Forms
- Low‐Level Input and Output Rules
- Short and Shallow Output
- Generating Unstructured Output
- String‐Oriented Output Formats
- Formatted Output
- Output Formats for Numbers
- Grids, Rows, and Columns in the Wolfram Language
- Tables and Matrices
- Requesting Input
- Styles and Fonts in Output
- Messages
- Representing Textual Forms by Boxes
- International Messages
- String Representation of Boxes
- Documentation Constructs
- Converting between Strings, Boxes, and Expressions
The Structure of Graphics and Sound
The Structure of Graphics and Sound https://reference.wolfram.com/language/tutorial/TheStructureOfGraphicsAndSound.html
- The Structure of Graphics
- Coordinate Systems for Three‐Dimensional Graphics
- Two‐Dimensional Graphics Elements
- Lighting and Surface Properties
- Graphics Directives and Options
- Labeling Three‐Dimensional Graphics
- Coordinate Systems for Two‐Dimensional Graphics
- Efficient Representation of Many Primitives
- Labeling Two‐Dimensional Graphics
- Formats for Text in Graphics
- Insetting Objects in Graphics
- Graphics Primitives for Text
- Density and Contour Plots
- The Representation of Sound
- Three‐Dimensional Graphics Primitives
- Exporting Graphics and Sounds
- Three‐Dimensional Graphics Directives
- Importing Graphics and Sounds
Manipulating Notebooks
Manipulating Notebooks ManipulatingNotebooks
- Cells as Wolfram Language Expressions
- Styles and the Inheritance of Option Settings
- Notebooks as Wolfram Language Expressions
- Options for Cells
- Manipulating Notebooks from the Kernel
- Text and Font Options
- Manipulating the Front End from the Kernel
- Options for Expression Input and Output
- Front End Tokens
- Options for Notebooks
- Executing Notebook Commands Directly in the Front End
- Global Options for the Front End
- The Structure of Cells
Files and Streams
Files and Streams https://reference.wolfram.com/language/tutorial/FilesAndStreams.html
- File Names
- Streams
Files, Streams, and External Operations https://reference.wolfram.com/language/tutorial/FilesStreamsAndExternalOperations.html
- Reading and Writing Wolfram System Files
- Searching Files
- External Programs
- Searching and Reading Strings
- Streams and Low‐Level Input and Output
- Binary Files
- Naming and Finding Files
- Generating C and Fortran Expressions
- Manipulating Files and Directories
- Wolfram Language Scripts
- Reading Textual Data
Introduction to Manipulate
Introduction to Manipulate https://reference.wolfram.com/language/tutorial/IntroductionToManipulate.html
- Manipulate Is as Easy as Table
- Locator
- Symbolic Output and Step Sizes
- 3D Graphics
- Types of Controls
- All Types of Output Are Supported
- Initial Values and Labels
- Saving Definitions of Functions Used inside Manipulate
- Beautifying the Control Area
- Gamepads and Joysticks
- 2D Sliders
- Autorun
- Graphics beyond Plotting
- Bookmarking Combinations of Parameter Values
Introduction to Dynamic https://reference.wolfram.com/language/tutorial/IntroductionToDynamic.html
- The Fundamental Principle of Dynamic
- Dynamic in Options
- Dynamic and Controls
- Dynamic and Infinite Loops
- Dynamic and Other Functions
- A Good Trick to Know
- Localizing Variables in Dynamic Output
- Slow Evaluations inside Dynamic
- The Second Argument of Dynamic
- Further Reading
- Where Should Dynamic Be Placed in an Expression?
Advanced Dynamic Functionality https://reference.wolfram.com/language/tutorial/AdvancedDynamicFunctionality.html
- Module versus DynamicModule
- Synchronous versus Asynchronous Dynamic Evaluations
- Front End Ownership of DynamicModule Variable Values
- ControlActive and SynchronousUpdatingAutomatic
- Automatic Updates of Dynamic Objects
- ImageSizeCache in Dynamic
- Refresh
- One‐Sided Updating of ControlActive
- Nesting Refresh
- DynamicModule Wormholes
- Nesting Dynamic
Views https://reference.wolfram.com/language/tutorial/Views.html
- OpenerView
- Controlling the Currently Displayed Pane
- TabView
- Controlling whether a View Changes Size
- MenuView
- Dynamic Content in Views
- SlideView
- Views versus Controls
- PopupView
- FlipView versus PaneSelector versus Toggler
- FlipView
Wolfram System Internet Connectivity https://reference.wolfram.com/language/tutorial/InternetConnectivity.html
- Introduction
- Troubleshooting Connectivity Problems
- Internet Connectivity Dialog
- Further Information
Other Misc
Mathematical and Other Notation https://reference.wolfram.com/language/tutorial/MathematicalAndOtherNotation
- Mathematical Notation in Notebooks
- Letters and Letter‐like Forms
- Special Characters: Mathematical and Other Notation
- Operators
- Names of Symbols and Mathematical Objects
- Structural Elements and Keyboard Characters
Global Aspects of Wolfram System Sessions https://reference.wolfram.com/language/tutorial/GlobalAspectsOfWolframSystemSessions.html
- The Main Loop
- Memory Management
- Dialogs
- Global System Information
- Date and Time Functions
- Wolfram System Sessions
Operator Input Forms https://reference.wolfram.com/language/tutorial/OperatorInputForms.html
Wolfram Language Protocols
- WSTP and External Program Communication WSTPAndExternalProgramCommunicationOverview
- Wolfram Language LSP (Microsoft Language Server Protocol) https://github.com/kenkangxgwe/lsp-wl
Reference
- The Mathematica Book https://www.stephenwolfram.com/publications/mathematica-book/
- WOLFRAM PRODUCTS DOCUMENTATION HISTORY https://reference.wolfram.com/history/