sorawee
2019-1-18 01:03:43

> The dynamic extent of an expression is the sequence of evaluation steps during which the expression contains the redex.

(from https://docs.racket-lang.org/reference/eval-model.html#%28part._cont-model%29)

Should this actually be:

> The dynamic extent of an expression is the sequence of evaluation steps during which the expression contains some redex.

?


samth
2019-1-18 01:16:48

No, “the redex” means “the redex in the evaluation step”


lexi.lambda
2019-1-18 01:23:45

…and “the redex” is unambiguous for a given expression because of Racket’s well-defined evaluation order (e.g. in (- (+ x 1) (* y 2)), the redex is (+ x 1) and not (* y 2) because evaluation order is left-to-right).


lexi.lambda
2019-1-18 01:24:09

(But what samth said is true even without that property.)


sorawee
2019-1-18 01:29:26

It’s unambiguous, but varies as we step through the trace, right? E.g., (* [(+ 1 1)] (+ 2 2)) => (* 2 [(+ 2 2)])

I guess my confusion is that, saying the redex seems to suggest that we fix a particular redex, but that’s not true, correct?


andreiformiga
2019-1-18 01:30:18

the redex in the current evaluation step


sorawee
2019-1-18 01:32:36

Please bear with me—I’m truly confused. So this is actually about one single step, and not a sequence of steps?


andreiformiga
2019-1-18 01:38:11

the definition was about the dynamic extent of an expression


andreiformiga
2019-1-18 01:38:34

in any evaluation step, the expression may or may not contain the redex (for the current evaluation step)


andreiformiga
2019-1-18 01:39:18

the dynamic extent of the expression is the sequence of steps in which the expression contains the redex


sorawee
2019-1-18 01:40:34

Ah, I think I understand it now. Thanks!


aqazi786
2019-1-18 03:03:14

@aqazi786 has joined the channel