Light the led unless both switches are on.

4 points•charlesfrisbee•7 days ago•5 comments•

5 comments

veexx1037 days ago
Ten years ago, I worked on something similar for my graduation project.

I drew inspiration from the circuit simulator in SICP and a tool called Logisim,

and used Lisp to design a circuit simulation library.

The core concept was:

Each function could generate a circuit module,

that accepted multiple input lines—each consisting of multiple bits,

and produced a single output line, which also consisted of multiple bits.

For example, an adder would take two $n$-bit lines as input and output a single $n$-bit line.

Using this simulation library, I also built a simple CPU and implemented a factorial function using its machine language.

charlesfrisbee7 days ago
Interesting! Did you ever open source it? Would love to take a look. I wanted to have something that ran natively in the browser/node to have Logisim's ease of getting started/interactivity, while also being able to piggyback off Typescript's language features and the npm ecosystem.

I was also heavily inspired by the Steam game 'Turing Complete' but wanted something code based to not need to manually wire in the GUI. Thanks for taking a look

veexx1037 days ago
Here is my code:

https://github.com/mindChickey/circuit/tree/master/cirlisp

There is no documentation, but I think the design is worth a look.

The specific language doesn't matter much; using TypeScript to run it in the browser is a good choice.

As for a graphical interface for wires and gates—I don't think it's necessary;

Expressing it directly in code is more efficient..

Read the full thread on Hacker News →

Related stories