Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Contents • Build Your Own Lisp
Introduction • Chapter 1
About
Who this is for
Why learn C
How to learn C
Why build a Lisp
Your own Lisp
Installation • Chapter 2
Setup
Text Editor
Compiler
Testing the Compiler
Hello World
Compilation
Errors
Documentation
Reference
Bonus Marks
Basics • Chapter 3
Overview
Programs
Variables
Function Declarations
Structure Declarations
Pointers
Strings
Conditionals
Loops
Bonus Marks
An Interactive Prompt • Chapter 4
Read, Evaluate, Print
An Interactive Prompt
Compilation
Editing input
Using Editline
Compiling with Editline
The C Preprocessor
Reference
Bonus Marks
Languages • Chapter 5
What is a Programming Language?
Parser Combinators
Coding Grammars
Natural Grammars
Reference
Bonus Marks
Parsing • Chapter 6
Polish Notation
Regular Expressions
Installing mpc
Polish Notation Grammar
Parsing User Input
Reference
Bonus Marks
Evaluation • Chapter 7
Trees
Recursion
Evaluation
Printing
Reference
Bonus Marks
Error Handling • Chapter 8
Crashes
Lisp Value
Enumerations
Lisp Value Functions
Evaluating Errors
Plumbing
Reference
Bonus Marks
S-Expressions • Chapter 9
Lists and Lisps
Pointers
The Stack & The Heap
The Stack
The Heap
Parsing Expressions
Expression Structure
Constructors & Destructors
Reading Expressions
Printing Expressions
Evaluating Expressions
Reference
Bonus Marks
Q-Expressions • Chapter 10
Adding Features
Quoted Expressions
Reading Q-Expressions
Builtin Functions
First Attempt
Macros
Head & Tail
List & Eval
Join
Builtins Lookup
Reference
Bonus Marks
Variables • Chapter 11
Immutability
Symbol Syntax
Function Pointers
Cyclic Types
Function Type
Environment
Variable Evaluation
Builtins
Define Function
Error Reporting
Reference
Bonus Marks
Functions • Chapter 12
What is a Function?
Function Type
Lambda Function
Parent Environment
Function Calling
Variable Arguments
Interesting Functions
Function Definition
Currying
Reference
Bonus Marks
Conditionals • Chapter 13
Doing it yourself
Ordering
Equality
If Function
Recursive Functions
Reference
Bonus Marks
Strings • Chapter 14
Libraries
String Type
Reading Strings
Comments
Load Function
Command Line Arguments
Print Function
Error Function
Finishing Up
Reference
Bonus Marks
Standard Library • Chapter 15
Minimalism
Atoms
Building Blocks
Logical Operators
Miscellaneous Functions
List Functions
Conditional Functions
Fibonacci
Reference
Bonus Marks
Bonus Projects • Chapter 16
Only the Beginning
Native Types
User Defined Types
List Literal
Operating System Interaction
Macros
Variable Hashtable
Pool Allocation
Garbage Collection
Tail Call Optimisation
Lexical Scoping
Static Typing
Conclusion
Credits • Build Your Own Lisp
Special Thanks
Beta Readers
Image Credits
Frequently Asked Questions
Who are you?
Why don't you teach arrays in this book?
Why do you use left-handed pointer syntax?
Why isn't the language parser written by hand?
Why are there no Macros in this Lisp?
Where are the answers to the exercises?
• Contents •
← Prev
Back
Next →
← Prev
Back
Next →