The Vocabulary of Advanced Scheme

The foundation of any language is its vocabulary. In <#48405#>Beginning Student<#48405#> Scheme, we distinguish four categories of words: variables, constants, primitive functions, and keywords. The classification ignores parentheses but we know that every compound phrase is surrounded by a pair of parentheses, and that every atomic phrase stands on its own. <#48406#>Advanced Student<#48406#> Scheme respects this basic classification, though it contains four important new keywords: <#68838#><#48407#>local<#48407#><#68838#>, <#68839#><#48408#>lambda<#48408#><#68839#>, <#68840#><#48409#>set!<#48409#><#68840#>, and <#68841#><#48410#>begin<#48410#><#68841#>. The first two are important for organizing and abstracting programs; the last two are important for the computation of effects. Still, keywords <#48411#>per se<#48411#> have no meaning. They are road signs that tell us what is ahead so that we can orient ourselves. It is the grammar and the meaning of a language that explains the role of the keywords.