LET allows you to introduce local bindings and use them to name intermediate results.
I’m trying out a new format with this post. I introduce the feature, explain its intended semantics, and give you examples to test your understanding before walking through how I implemented it. There’s also a place to pause and try implementing it yourself.