Exposition in Wolfram System Notebooks

Wolfram System notebooks provide the basic technology that you need to be able to create a very wide range of sophisticated interactive documents. But to get the best out of this technology you need to develop an appropriate style of exposition.

Many people at first tend to use Wolfram System notebooks either as simple worksheets containing a sequence of input and output lines, or as onscreen versions of traditional books and other printed material. But the most effective and productive uses of Wolfram System notebooks tend to lie at neither one of these extremes, and instead typically involve a fine-grained mixing of Wolfram Language input and output with explanatory text. In most cases the single most important factor in obtaining such fine-grained mixing is uniform use of the Wolfram Language.

One might think that there would tend to be four kinds of material in a Wolfram System notebook: plain text, mathematical formulas, computer code, and interactive interfaces. But one of the key ideas of the Wolfram Language is to provide a single language that offers the best of both traditional mathematical formulas and computer code.

In (RefLink[StandardForm, paclet:ref/StandardForm]), Wolfram Language expressions have the same kind of compactness and elegance as traditional mathematical formulas. But unlike such formulas, Wolfram Language expressions are set up in a completely consistent and uniform way. As a result, if you use Wolfram Language expressions, then regardless of your subject matter, you never have to go back and reexplain your basic notation: it is always just the notation of the Wolfram Language. In addition, if you set up your explanations in terms of Wolfram Language expressions, then a reader of your notebook can immediately take what you have given, and actually execute it as Wolfram Language input.

If one has spent many years working with traditional mathematical notation, then it takes a little time to get used to seeing mathematical facts presented as (RefLink[StandardForm, paclet:ref/StandardForm]) Wolfram Language expressions. Indeed, at first one often has a tendency to try to use (RefLink[TraditionalForm, paclet:ref/TraditionalForm]) whenever possible, perhaps with hidden tags to indicate its interpretation. But quite soon one tends to evolve to a mixture of (RefLink[StandardForm, paclet:ref/StandardForm]) and (RefLink[TraditionalForm, paclet:ref/TraditionalForm]). And in the end it becomes clear that (RefLink[StandardForm, paclet:ref/StandardForm]) alone is for most purposes the most effective form of presentation.

In traditional mathematical exposition, there are many tricks for replacing chunks of text by fragments of formulas. In (RefLink[StandardForm, paclet:ref/StandardForm]) many of these same tricks can be used. But the fact that Wolfram Language expressions can represent not only mathematical objects but also procedures, algorithms, graphics, and interfaces increases greatly the extent to which chunks of text can be replaced by shorter and more precise material.