Catlang programming language idea: Rejoice

It's like Joy, but instead of a stack, it's a multiset, and transformations are local rewriting rules.

The program state is a bag of unordered things, transformations are represented as fractions where the denominator indicates things to remove from the bag, and the numerator, things to add. Evaluation consists of applying fractions from left to right, each to exhaustion, until the bag stabilizes.

https://wiki.xxiivv.com/site/rejoice.html