Great post, thanks for sharing it!

When I saw the title, I thought of Lambda Calculus[0] and SKI combinators[1]. Given that there are "only six useful colors", I wonder if M&Ms could be used to implement them.

0 - https://en.wikipedia.org/wiki/Lambda_calculus

1 - https://en.wikipedia.org/wiki/SKI_combinator_calculus

Funny you mention that, because yes, a combinator-style encoding is probably a cleaner fit for the “only six colors constraint than my stack machine. I hacked together a tiny SKI-flavored M&M reducer as a proof of concept: B=S, G=K, R=I, Y=(, O=), and N... is a free atom, so `B G G NNN` reduces to `a2`.

Gist: https://gist.github.com/mufeedvh/db930a423fdce8c1d8e495c7a3f...