Created
February 24, 2020 18:33
-
-
Save meisterluk/0dbc6e18bd0cc43e430b4f77003c48d4 to your computer and use it in GitHub Desktop.
A looping device in plain Teχ
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% Input: we define \loop to print some text the number of given times | |
\newcount\c% | |
\long\def\loop#1 for #2 times{ | |
\c=#2\relax% | |
\begingroup% | |
\def\iterate{% | |
\ifnum\c>0 % | |
\advance\c by -1% | |
{#1}\par% | |
\iterate% | |
\fi% | |
}% | |
\iterate | |
\endgroup% | |
} | |
\loop | |
this sentence. | |
for 10 times | |
% Output: “this sentence. | |
% this sentence. | |
% this sentence. | |
% this sentence. | |
% this sentence. | |
% this sentence. | |
% this sentence. | |
% this sentence. | |
% this sentence. | |
% this sentence.” | |
% Input: We define \ifundefined to determine | |
% whether the inner macro \iterate propagated outside | |
{\tt iterate} is defined? | |
% via “Teχ by Topic” page 142 | |
\def\ifundefined#1{\expandafter | |
\ifx\csname#1\endcsname\relax} | |
\ifundefined{iterate}No\else Yes\fi | |
% Output: Yes | |
%\iterate | |
%% fails with “Undefined control sequence.” though | |
\bye |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment