It is usual to call fields consisting of functions on an algebraic curve *function fields*. In algebraic terms, function fields are of transcendence degree one over their base field. It turns out that the study of these function fields is equivalent to the study of the corresponding algebraic curves. The main tools for this are vector subspaces consisting of functions with prescribed conditions on their zeros and poles, codified in a given “divisor” on the function field. These are the Riemann-Roch spaces of the title of the book under review. Their name comes from the Riemann-Roch *theorem*, which computes the dimension of these spaces in terms of the *genus* of the function field and the degree of the corresponding divisor.

The book under review is an elementary and computational take on some topics related to these function spaces, for *fields of characteristic zero*. The first part of the book recalls some basic algebraic facts, from elementary topics on rings and fields to the theory of function fields of affine and projective plane curves. Some of these results are given with proofs, but others are just quoted from the literature. The second part of the book presents algorithms to compute some invariants of the Riemann-Roch spaces such as their dimension or explicit bases. Applications include the computation of integral points on (some) rational curves.

Some cautions should be noted. Although not always explicitly specified, the base field is always of characteristic zero, and most of the times is a number field, that is a finite extension of the field of rational numbers. This assumption is implicit in the introductory chapters. On page 11, for example, the definition of the ring of integers of these fields assumes we are working over number fields. On pages 13 to 15 the definition and properties of the norm and trace use the real and complex embeddings of a number field. Similarly, the statement of Dirichlet’s unit theorem applies to number fields.

In the book “curves” means “curves in the affine or projective *plane,*” which is why the author is allowed to write such curves as given by a single polynomial and define their degree as the degree of the corresponding polynomial. This condition is made explicit on page 19 for affine curves and on page 28 for the definition of *genus* of a projective curve. With these caveats, the mention of separability in some places is a moot point, as is the mention of coding theory as an application.

Felipe Zaldivar is Professor of Mathematics at the Universidad Autonoma Metropolitana-I, in Mexico City. His e-mail address is [email protected]