Certain things, ARE however, the author's fault. In particular, he addresses the audience with needlessly confusing 'Basis'/'Induction' definitions for many many things. For example, a binary tree is defined in such a way. This can be incredibly confusing, espcially if one does not already understand the concept of a BT or a BST. While ML/SML is a mathematical language, the author assumes too much formalism in his definitions, enough that the reading feels like reading a thick algorithms book at times (not a pleasant experience). Suggestion to author: Explain things simply instead of trying to coerce definitions into formalisms in which they do not belong (in particular the induction formalism which is very often confusing, use induction only when TRULY needed).
On the whole, ok to learn from, but can be overly verbose in some areas (eg: the belabored explination of all the error messages) , yet unclear in others... (eg: the density of several sections).
Also, as a parting note, there is not too much assumed about the reader, however, it helps to have a broad general computer science knowledge (as well as basic math, eg: calculus) unless you pickup new side-concepts very quickly. For example, in one example, the author uses the trapezoidal approixmation as an illustration of higher order functions. This is well and good, assuming you know calculus. While he does 'explain' the ideas (eg: what a binary search tree IS) if you havent had it presented to you before, you're in too deep.
Important: This is a ACADEMIC book, this is not something to pick up and read, it is far too dry for that. If you're looking for a good learning book, look elsewhere.
Written by a well-known computer science education and researcher. No previous knowledge of ML or functional programming is assumed. This is the first book that offers BOTH a highly accessible, step-by-step introductory tutorial on ML programming and a complete reference to, and explanation of, advanced features. The author uses a wide variety of digestible program examples to bring the reader along at a reasonable pace. More sophisticated programs and advanced concept topics balance out a book that is usable in a number of courses and settings for either self-study or class discussion.