From 839b7f78f899eacbef761b96ab4f564f296f3ea8 Mon Sep 17 00:00:00 2001 From: Jason Hemann Date: Sat, 29 May 2021 14:53:58 -0400 Subject: [PATCH] Cleaning causality in rejected alternative application I imagine a reader misunderstanding the causal relationship in the sentence as currently written. I hope for this to disambiguate. I believe this point in the document describes a design decision we the reader are presently considering. The reader should not imagine that an existing capacity to change `x` itself materially /prevents/ substitution---that we cannot substitute---the way a buoy's ability to float prevents it from sinking. I believe the writer means to say that the intended goal, supporting mutation, makes us (the author + the reader) reject direct substitution as an evaluation strategy. --- pkgs/racket-doc/scribblings/reference/eval-model.scrbl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/racket-doc/scribblings/reference/eval-model.scrbl b/pkgs/racket-doc/scribblings/reference/eval-model.scrbl index 2e04f7a075..d496022aff 100644 --- a/pkgs/racket-doc/scribblings/reference/eval-model.scrbl +++ b/pkgs/racket-doc/scribblings/reference/eval-model.scrbl @@ -386,9 +386,9 @@ an @tech{object}, so evaluating @racket[(f 7)] starts with a Unlike in algebra, however, the @tech{value} associated with a procedure argument variable can be changed in the body of a procedure by using @racket[set!], as in the example @racket[(lambda (x) (begin (set! x 3) -x))]. Since the @tech{value} associated with argument variable @racket[x] can be -changed, the value cannot be substituted for @racket[x] when -the procedure is first applied. +x))]. Since the @tech{value} associated with argument variable @racket[x] should be +able to change, we cannot just substitute the value in for @racket[x] when +we first apply the procedure. @margin-note{We do not use the term ``parameter variable'' to refer to the argument variable names declared with a function. This choice avoids