This looks to me like an implementation of self-adjusting computations, but it does skip some interesting bits. In particular I didn’t see anything that allows it to prevent recomputing a node to which there are multiple paths through the dag. I think this means that the resulting computation will be exponential in the size of the computation. Still, a lovely little post.

This looks to me like an implementation of self-adjusting computations, but it does skip some interesting bits. In particular I didn’t see anything that allows it to prevent recomputing a node to which there are multiple paths through the dag. I think this means that the resulting computation will be exponential in the size of the computation. Still, a lovely little post.