Skip to main content
added 166 characters in body
Source Link
Ulrich Diez
  • 32.7k
  • 2
  • 34
  • 63

For the sake of coping with implicit space when doing \let I suggest s.th. like this:

\def\redefine#1{% \expandafter\futurelet\csname\string#1\endcsname\def#1% }% \def\exchange#1#2{#2#1}% \def\recover#1{% \expandafter\exchange\expandafter{\csname\string#1\endcsname}{\let#1= }% }% \def\foobar{foo} \foobar \redefine\foobar{bar} \foobar \recover\foobar \foobar \bigskip Doing the implicit space game: \bigskip \exchange{ }{\let\foobar= }% A\foobar A \redefine\foobar{bar} B\foobar B \recover\foobar C\foobar C \bye 

enter image description hereenter image description here

Alternatively just do some scoping via \begingroup..\endgroup or {..}:

\def\foobar{foo}% \foobar \begingroup \def\foobar{bar}% \foobar \endgroup \foobar {% \def\foobar{bar}% \foobar }% \foobar \bye 

For the sake of coping with implicit space when doing \let I suggest s.th. like this:

\def\redefine#1{% \expandafter\futurelet\csname\string#1\endcsname\def#1% }% \def\exchange#1#2{#2#1}% \def\recover#1{% \expandafter\exchange\expandafter{\csname\string#1\endcsname}{\let#1= }% }% \def\foobar{foo} \foobar \redefine\foobar{bar} \foobar \recover\foobar \foobar \bye 

enter image description here

Alternatively just do some scoping via \begingroup..\endgroup or {..}:

\def\foobar{foo}% \foobar \begingroup \def\foobar{bar}% \foobar \endgroup \foobar {% \def\foobar{bar}% \foobar }% \foobar \bye 

For the sake of coping with implicit space when doing \let I suggest s.th. like this:

\def\redefine#1{% \expandafter\futurelet\csname\string#1\endcsname\def#1% }% \def\exchange#1#2{#2#1}% \def\recover#1{% \expandafter\exchange\expandafter{\csname\string#1\endcsname}{\let#1= }% }% \def\foobar{foo} \foobar \redefine\foobar{bar} \foobar \recover\foobar \foobar \bigskip Doing the implicit space game: \bigskip \exchange{ }{\let\foobar= }% A\foobar A \redefine\foobar{bar} B\foobar B \recover\foobar C\foobar C \bye 

enter image description here

Alternatively just do some scoping via \begingroup..\endgroup or {..}:

\def\foobar{foo}% \foobar \begingroup \def\foobar{bar}% \foobar \endgroup \foobar {% \def\foobar{bar}% \foobar }% \foobar \bye 
deleted 3 characters in body
Source Link
Ulrich Diez
  • 32.7k
  • 2
  • 34
  • 63

For the sake of coping with implicit space when doing \let I suggest s.th. like this:

\def\redefine#1{% \expandafter\let\csname\string#1\endcsname= #1% \def#1%\expandafter\futurelet\csname\string#1\endcsname\def#1% }% \def\exchange#1#2{#2#1}% \def\recover#1{% \expandafter\exchange\expandafter{\csname\string#1\endcsname}{\let#1= }% }% \def\foobar{foo} \foobar \redefine\foobar{bar} \foobar \recover\foobar \foobar \bye 

enter image description here

Alternatively just do some scoping via \begingroup..\endgroup or {..}:

\def\foobar{foo}% \foobar \begingroup \def\foobar{bar}% \foobar \endgroup \foobar {% \def\foobar{bar}% \foobar }% \foobar \bye 

For the sake of coping with implicit space when doing \let I suggest s.th. like this:

\def\redefine#1{% \expandafter\let\csname\string#1\endcsname= #1% \def#1% }% \def\exchange#1#2{#2#1}% \def\recover#1{% \expandafter\exchange\expandafter{\csname\string#1\endcsname}{\let#1= }% }% \def\foobar{foo} \foobar \redefine\foobar{bar} \foobar \recover\foobar \foobar \bye 

enter image description here

Alternatively just do some scoping via \begingroup..\endgroup or {..}:

\def\foobar{foo}% \foobar \begingroup \def\foobar{bar}% \foobar \endgroup \foobar {% \def\foobar{bar}% \foobar }% \foobar \bye 

For the sake of coping with implicit space when doing \let I suggest s.th. like this:

\def\redefine#1{% \expandafter\futurelet\csname\string#1\endcsname\def#1% }% \def\exchange#1#2{#2#1}% \def\recover#1{% \expandafter\exchange\expandafter{\csname\string#1\endcsname}{\let#1= }% }% \def\foobar{foo} \foobar \redefine\foobar{bar} \foobar \recover\foobar \foobar \bye 

enter image description here

Alternatively just do some scoping via \begingroup..\endgroup or {..}:

\def\foobar{foo}% \foobar \begingroup \def\foobar{bar}% \foobar \endgroup \foobar {% \def\foobar{bar}% \foobar }% \foobar \bye 
deleted 6 characters in body
Source Link
Ulrich Diez
  • 32.7k
  • 2
  • 34
  • 63

For the sake of coping with implicit space when doing \let I suggest s.th. like this:

\def\redefine#1#2\def\redefine#1{% \expandafter\let\csname\string#1\endcsname= #1% \def#1{#2}%\def#1% }% \def\exchange#1#2{#2#1}% \def\recover#1{% \expandafter\exchange\expandafter{\csname\string#1\endcsname}{\let#1= }% }% \def\foobar{foo} \foobar \redefine\foobar{bar} \foobar \recover\foobar \foobar \bye 

enter image description here

Alternatively just do some scoping via \begingroup..\endgroup or {..}:

\def\foobar{foo}% \foobar \begingroup \def\foobar{bar}% \foobar \endgroup \foobar {% \def\foobar{bar}% \foobar }% \foobar \bye 

For the sake of coping with implicit space when doing \let I suggest s.th. like this:

\def\redefine#1#2{% \expandafter\let\csname\string#1\endcsname= #1% \def#1{#2}% }% \def\exchange#1#2{#2#1}% \def\recover#1{% \expandafter\exchange\expandafter{\csname\string#1\endcsname}{\let#1= }% }% \def\foobar{foo} \foobar \redefine\foobar{bar} \foobar \recover\foobar \foobar \bye 

enter image description here

Alternatively just do some scoping via \begingroup..\endgroup or {..}:

\def\foobar{foo}% \foobar \begingroup \def\foobar{bar}% \foobar \endgroup \foobar {% \def\foobar{bar}% \foobar }% \foobar \bye 

For the sake of coping with implicit space when doing \let I suggest s.th. like this:

\def\redefine#1{% \expandafter\let\csname\string#1\endcsname= #1% \def#1% }% \def\exchange#1#2{#2#1}% \def\recover#1{% \expandafter\exchange\expandafter{\csname\string#1\endcsname}{\let#1= }% }% \def\foobar{foo} \foobar \redefine\foobar{bar} \foobar \recover\foobar \foobar \bye 

enter image description here

Alternatively just do some scoping via \begingroup..\endgroup or {..}:

\def\foobar{foo}% \foobar \begingroup \def\foobar{bar}% \foobar \endgroup \foobar {% \def\foobar{bar}% \foobar }% \foobar \bye 
added 59 characters in body
Source Link
Ulrich Diez
  • 32.7k
  • 2
  • 34
  • 63
Loading
added 185 characters in body
Source Link
Ulrich Diez
  • 32.7k
  • 2
  • 34
  • 63
Loading
Source Link
Ulrich Diez
  • 32.7k
  • 2
  • 34
  • 63
Loading