This web site exists to document my adventures in writing software emulators for old computer hardware. So far, I have completed (sort of) a Commodore PET emulation and am working on a Sinclair Spectrum emulation.
For my series of posts on the Lambda Calculus, I have developed a lambda calculator. At the time of writing, it only works in “single step mode”: you hit the return key having typed in a lambda expression and it does one beta reduction. Hit the return key again and it does another beta reduction. … Continue reading Signal Handling in Swift
This post is all about how I achieved stage 1 of the conversion of the Lambda Calculator. It follows on from Protocol Oriented Programming. I have commented out all of the code in Expression.swift and added a protocol Expressible. All the functions that were “abstract” in Expression become protocol requirements and all of the functions … Continue reading Protocol OrientedProgramming part 2
This is technically a post in the Lambda Calculus series but I am concerned with the implementation of my Lambda calculator today. Anybody who has looked at the code will see I have used a class hierarchy to represent Lambda expressions. I use classes because I want my objects to be of reference types so … Continue reading Protocol Oriented Programming
God created the natural numbers. All else is the work of man. Leopold Kronecker We’ve got lists and with lists we can do pretty much any data structure we like. However, in computing, we also need numbers. Usually, numbers are thought of as fairly basic entities with respect to computing, but, in the Lambda Calculus … Continue reading Numbers in The Lambda Calculus