Skip to content

corecursive/sicp-study-group

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The CoRecursive Slack SICP Study group

Chapters

  • 1-1-1:: Expressions
  • 1-1-2:: Naming and the Environment
  • 1-1-3:: Evaluating Combinations
  • 1-1-4:: Compound Procedures
  • 1-1-5:: The Substitution Model for Procedure Application
  • 1-1-6:: Conditional Expressions and Predicates
  • 1-1-7:: Example: Square Roots by Newton's Method
  • 1-1-8:: Procedures as Black-Box Abstractions
  • 1-2-1:: Linear Recursion and Iteration
  • 1-2-2:: Tree Recursion
  • 1-2-3:: Orders of Growth
  • 1-2-4:: Exponentiation
  • 1-2-5:: Greatest Common Divisors
  • 1-2-6:: Example: Testing for Primality
  • 1-3-1:: Procedures as Arguments
  • 1-3-2:: Constructing Procedures Using Lambda
  • 1-3-3:: Procedures as General Methods
  • 1-3-4:: Procedures as Returned Values
  • 2-1-1:: Example: Arithmetic Operations for Rational Numbers
  • 2-1-2:: Abstraction Barriers
  • 2-1-3:: What Is Meant by Data?
  • 2-1-4:: Extended Exercise: Interval Arithmetic
  • 2-2-1:: Representing Sequences
  • 2-2-2:: Hierarchical Structures
  • 2-2-3:: Sequences as Conventional Interfaces
  • 2-2-4:: Example: A Picture Language
  • 2-3-1:: Quotation
  • 2-3-2:: Example: Symbolic Differentiation
  • 2-3-3:: Example: Representing Sets
  • 2-3-4:: Example: Huffman Encoding Trees
  • 2-4-1:: Representations for Complex Numbers
  • 2-4-2:: Tagged data
  • 2-4-3:: Data-Directed Programming and Additivity
  • 2-5-1:: Generic Arithmetic Operations
  • 2-5-2:: Combining Data of Different Types
  • 2-5-3:: Example: Symbolic Algebra
  • 3-1-1:: Local State Variables
  • 3-1-2:: The Benefits of Introducing Assignment
  • 3-1-3:: The Costs of Introducing Assignment
  • 3-2-1:: The Rules for Evaluation
  • 3-2-2:: Applying Simple Procedures
  • 3-2-3:: Frames as the Repository of Local State
  • 3-2-4:: Internal Definitions
  • 3-3-1:: Mutable List Structure
  • 3-3-2:: Representing Queues
  • 3-3-3:: Representing Tables
  • 3-3-4:: A Simulator for Digital Circuits
  • 3-3-5:: Propagation of Constraints
  • 3-4-1:: The Nature of Time in Concurrent Systems
  • 3-4-2:: Mechanisms for Controlling Concurrency
  • 3-5-1:: Streams Are Delayed Lists
  • 3-5-2:: Infinite Streams
  • 3-5-3:: Exploiting the Stream Paradigm
  • 3-5-4:: Streams and Delayed Evaluation
  • 3-5-5:: Modularity of Functional Programs and Modularity of Objects
  • 4-1-1:: The Core of the Evaluator
  • 4-1-2:: Representing Expressions
  • 4-1-3:: Evaluator Data Structures
  • 4-1-4:: Running the Evaluator as a Program
  • 4-1-5:: Data as Programs
  • 4-1-6:: Internal Definitions
  • 4-1-7:: Separating Syntactic Analysis from Execution
  • 4-2-1:: Normal Order and Applicative Order
  • 4-2-2:: An Interpreter with Lazy Evaluation
  • 4-2-3:: Streams as Lazy Lists
  • 4-3-1:: Amb and Search
  • 4-3-2:: Examples of Nondeterministic Programs
  • 4-3-3:: Implementing the `Amb' Evaluator
  • 4-4-1:: Deductive Information Retrieval
  • 4-4-2:: How the Query System Works
  • 4-4-3:: Is Logic Programming Mathematical Logic?
  • 4-4-4-1:: The Driver Loop and Instantiation
  • 4-4-4-2:: The Evaluator
  • 4-4-4-3:: Finding Assertions by Pattern Matching
  • 4-4-4-4:: Rules and Unification
  • 4-4-4-5:: Maintaining the Data Base
  • 4-4-4-6:: Stream Operations
  • 4-4-4-7:: Query Syntax Procedures
  • 4-4-4-8:: Frames and Bindings
  • 5-1-1:: A Language for Describing Register Machines
  • 5-1-2:: Abstraction in Machine Design
  • 5-1-3:: Subroutines
  • 5-1-4:: Using a Stack to Implement Recursion
  • 5-1-5:: Instruction Summary
  • 5-2-1:: The Machine Model
  • 5-2-2:: The Assembler
  • 5-2-3:: Generating Execution Procedures for Instructions
  • 5-2-4:: Monitoring Machine Performance
  • 5-3-1:: Memory as Vectors
  • 5-3-2:: Maintaining the Illusion of Infinite Memory
  • 5-4-1:: The Core of the Explicit-Control Evaluator
  • 5-4-2:: Sequence Evaluation and Tail Recursion
  • 5-4-3:: Conditionals, Assignments, and Definitions
  • 5-4-4:: Running the Evaluator
  • 5-5-1:: Structure of the Compiler
  • 5-5-2:: Compiling Expressions
  • 5-5-3:: Compiling Combinations
  • 5-5-4:: Combining Instruction Sequences
  • 5-5-5:: An Example of Compiled Code
  • 5-5-6:: Lexical Addressing
  • 5-5-7:: Interfacing Compiled Code to the Evaluator

Links

Lectures

Text

Other solutions to exercises

Learning aids

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published