In the languages we’ve examined so far, when we have a high-level problem like “see if a list contains an interesting element,” we can define a high-level, problem-specific function like exists?. But we can’t yet define problem-specific data; no matter what problem we’re working on, our code is written in terms of representations like numbers, symbols, Booleans, lists, S-expressions, and constructed data. We should hope for better; if we’re implementing high-level actions like “find the rule in the table,” “multiply two 50-digit numbers,” or “stop recording when the event is over,” then our code should be written in terms of abstractions like tables, large numbers, and events. Such abstractions can be defined by the language features described in the last two chapters of this book.
Review the options below to login to check your access.
Log in with your Cambridge Higher Education account to check access.
If you believe you should have access to this content, please contact your institutional librarian or consult our FAQ page for further information about accessing our content.