diff --git a/book.tex b/book.tex index 6ce38e2..f25ee39 100644 --- a/book.tex +++ b/book.tex @@ -8943,15 +8943,24 @@ \section{Remove Complex Operands} form executes the statements $ss$ and then returns the result of expression $e$.} -Add cases to the \code{rco\_exp} and \code{rco\_atom} functions for -the new features in \LangIf{}. In recursively processing -subexpressions, recall that you should invoke \code{rco\_atom} when -the output needs to be an \Atm{} (as specified in the grammar for -\LangIfANF{}) and invoke \code{rco\_exp} when the output should be -\Exp{}. Regarding \code{if}, it is particularly important -\emph{not} to replace its condition with a temporary variable, because -that would interfere with the generation of high-quality output in the -upcoming \code{explicate\_control} pass. +\racket{Add cases to the \code{rco\_exp} and \code{rco\_atom} + functions for the new features in \LangIf{}. In recursively + processing subexpressions, recall that you should invoke + \code{rco\_atom} when the output needs to be an \Atm{} (as specified + in the grammar for \LangIfANF{}) and invoke \code{rco\_exp} when the + output should be \Exp{}.} +% +\python{Add cases to the \code{rco\_exp} function for the new features + in \LangIf{}. In recursively processing subexpressions, recall that + you should invoke \code{rco\_exp} with the extra argument + \code{True} when the output needs to be an \Atm{} (as specified in + the grammar for \LangIfANF{}) and \code{False} when the output + should be \Exp{}.} +% +Regarding \code{if}, it is particularly important \emph{not} to +replace its condition with a temporary variable, because that would +interfere with the generation of high-quality output in the upcoming +\code{explicate\_control} pass. \newcommand{\LifMonadASTRacket}{ \begin{array}{rcl}