CSC 151 - Procedures and mental models of computation
So far, we have introduced a number of features of the Scheme programming language including top-level definitions, procedure declarations, and procedure applications. We have also focused nearly exclusively on how to author programs using these tools, appealing to your intuition about these constructs to explain how they work. We’ve also recently learned about the substitutive model of evaluation. Basically, to evaluate an expression, we evaluate all of the arguments to the function and then apply the function. For convenience, we’ve been doing this left-to-right. The self-referential nature of the model also means that we end up evaluating expressions from inner to outer. As you might expect, procedures complicate matters. Our intuition and the model might not be enough when we run into some special situations (some folks call these “corner cases”) that we may run into when writing Scheme programs. For example, consider the following procedure definitions: Are these two procedures eq
CSC 151 - Procedures and mental models of computation Procedures and mental models of computation Due Wednesday, 10 September 2025 --> Summary We apply our mental model of computation to procedures. So far, we have introduced a number of features of the Scheme programming language including top-level definitions, procedure declarations, and procedure applications. We have also focused nearly exclusively on how to author programs using these tools, appealing to your intuition about these constructs to explain how they work. We’ve also recently learned about the substitutive model of evaluation
Explore this link on the map →related reading
- CSC 151 - Mental models of computationeikmeier.sites.grinnell.edu
- Structure and Interpretation of Computer Programsmitp-content-server.mit.edu
- CSC 151 - Anonymous procedureseikmeier.sites.grinnell.edu
- CSC 151 - Computation via Expressionseikmeier.sites.grinnell.edu
- Lambda calculus - Wikipediaen.wikipedia.org
- CSC 151 - Writing your own procedureseikmeier.sites.grinnell.edu
- CSC 151 - Naming values with local bindingseikmeier.sites.grinnell.edu
- Structure and Interpretation of Computer Programsmitp-content-server.mit.edu
- CSC 151 - Conditional evaluation in Schemeeikmeier.sites.grinnell.edu
- Palmström: The Lambda Calculus for Absolute Dummies (like myself)palmstroem.blogspot.com
- Structure and Interpretation of Computer Programsmitp-content-server.mit.edu
- CSC 151 - Code Formatting and Styleeikmeier.sites.grinnell.edu