Arc Forumnew | comments | leaders | submitlogin
4 points by evanrmurphy 5320 days ago | link | parent

It's needed for multiple variable assignments. As you've noted, for a single variable assignment like (= x 12), (assign x 12) is as good as ((fn () (assign x 12))). But for a multiple variable assignment like (= x 12 y 34), whose expansion is ((fn () (assign x 12) (assign y 34))), taking out the thunk causes an error.