upvote
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

reply
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...

reply
Fun project! I had a similar project a while back, but my medium of choice was the Uno card game. I called it UnoScript [1] and it had similar mechanisms as color was an important factor. I also ended with a stack as the main part of the language, where different colors/combinations of cards could read from/modify the stack. Interesting how similar constraints can lead to some similar design choices!

[1](https://github.com/berlinquin/UnoScript)

reply
This makes the world a better place. I got a little oxytocin hit just from the thought that somewhere on this world, someone is working on this problem. Now I'll be kinder to old ladies and give those poor puppies a pass.
reply
Does this work with real candy?
reply
Yes! Just make sure to take a photo on a plain white surface is all.

With:

  uv run mnm decompile path/to/photo.png --mode photo
reply