Following the Grammar by Gary T. Leavens Abstract This document explains what it means to ``follow the grammar'' for several different grammars. It is intended to be used in class that teach functional programming using Scheme, especially those used for teaching principles of programming languages. In such courses traversal is over abstract syntax tree is defined by a grammar are fundamental, since they are the technique used to write compilers and interpreters. Keywords: Recursion, programming recursive procedures, recursion pattern, inductive definition, BNF grammar, Kleene star, follow the grammar, functional programming, list recursion, programming languages, concrete syntax, abstract syntax, helping procedures, parsing procedures, Scheme. 2001 CR Categories: D.1.1 [Programming Techniques] Applicative (Functional) Programming --- design, theory; D.2.4 [Software Engineering] Coding Tools and Techniques --- design, theory; D.3.1 [Programming Languages] Formal Definitions and Theory --- syntax; D.3.3 [Programming Languages] Language Constructs and Features --- recursion; (cc) (by:) This document is distributed under the terms of the Creative Commons Attribution License, version 2.0, see http://creativecommons.org/licenses/by/2.0/ .