# The Mathematica Book Online

By Xah Lee. Date: .

Wolfram used to publish a book called The Mathematica book Buy at amazon

It was a comprehensive Mathematica manual, over one thousand pages (1427 pages) in 1996 (for Mathematica v3), that are shipped with every copy of Mathematica.

The last printed edition is 5th edition for Mathematica version 5, published in 2003.

But since, the content has moved online. However, as of 2021, it is no longer in a coherent book format. Instead, the content of each chapter is now known as Tech Notes, and link to it are scattered among wolfram documentations, and there is no one page collecting all such.

## Principles of Mathematica

• 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

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
• 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

Manipulating Lists https://reference.wolfram.com/language/tutorial/ManipulatingLists.html

• Constructing Lists
• Manipulating Lists by Their Indices
• Sparse Arrays: Manipulating Lists
• Nested Lists
• 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

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 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 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
• Blocks and Local Values
• Manipulating Symbols and Contexts by Name
• Blocks Compared with Modules
• Intercepting the Creation of New Symbols
• Contexts

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—Wolfram Language Documentation 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 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 https://reference.wolfram.com/language/tutorial/ManipulatingNotebooks.html

• 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 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
• 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

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
• 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
• Where Should Dynamic Be Placed in an Expression?

• Module versus DynamicModule
• Synchronous versus Asynchronous Dynamic Evaluations
• Front End Ownership of DynamicModule Variable Values
• ControlActive and SynchronousUpdatingAutomatic
• Automatic Updates of Dynamic Objects
• ImageSizeCache in Dynamic
• Refresh
• One‐Sided Updating of ControlActive
• Nesting Refresh
• DynamicModule Wormholes
• Nesting Dynamic
• OpenerView
• Controlling the Currently Displayed Pane
• TabView
• Controlling whether a View Changes Size
• 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

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

Introduction to WSTP (aka MathLink) https://reference.wolfram.com/language/tutorial/IntroductionToWSTP.html