TIL you can view lazy evaluation and compile time evaluation as two ends of the same spectrum: "shifting when the code runs":

https://openjdk.org/projects/leyden/notes/02-shift-and-constrain#condensing-code

Obvious in retrospect but I never thought about it that way before!

Comments