Arc Forumnew | comments | leaders | submitlogin
1 point by nlavine 6094 days ago | link | parent

Thank you very much for explaining this, but there's one thing I don't understand.

The original value of k is the continuation of (catch throw) - a procedure which takes one argument, goes back to the let, and returns its argument as the value of (catch throw). This makes sense.

The second value of k is the continuation of (catch (k throw)). As far as I can tell, this expression does not return a value to anything. Why does its continuation take an argument? Is it just throwing it away?



1 point by cchooper 6094 days ago | link

Yes, the value of (catch (k throw)) is just discarded, so you could pass anything to the continuation and it wouldn't matter. The only reason it takes an argument is because all expressions in Arc have to return something, even if the value isn't used.

-----