萎草の茂るブログ

鵺帝国の飛び地。暇人も多忙の方も。

TeX Quine

2012年02月12日 | Computer
TeX で quine 書いてみた。

%This is a quine
\documentclass[a4paper]{article}
\usepackage{alltt}
\usepackage[hmargin=5mm]{geometry}
\usepackage[T1]{fontenc}
\let\tbs\textbackslash
\def\pc#1{\ifx0#1\%\else\tbs pc\#1\fi}
\def\rt#1{\ifx0#1\\\else\tbs rt\#1\\\fi}
\def\bs#1{\ifx0#1\tbs\else\tbs bs\#1\fi}
\def\no#1{\ifx0#1\#\else\tbs no\#1\fi}
\def\bg#1{\ifx0#1\{\else\tbs bg\#1\fi}
\def\en#1{\ifx0#1\}\else\tbs en\#1\fi}
\def\rec{\tbs ifx0\#1\tbs quine1\tbs else\tbs rec\tbs fi}
\def\quine#1{
\pc#1This is a quine\rt#1
\bs#1documentclass[a4paper]\bg#1article\en#1\rt#1
\bs#1usepackage\bg#1alltt\en#1\rt#1
\bs#1usepackage[hmargin=5mm]\bg#1geometry\en#1\rt#1
\bs#1usepackage[T1]\bg#1fontenc\en#1\rt#1
\bs#1let\bs#1tbs\bs#1textbackslash\rt#1
\bs#1def\bs#1pc\no#11\bg#1\bs#1ifx0\no#11\bs#1\pc#1\bs#1else\bs#1tbs pc\bs#1\no#11\bs#1fi\en#1\rt#1
\bs#1def\bs#1rt\no#11\bg#1\bs#1ifx0\no#11\bs#1\bs#1\bs#1else\bs#1tbs rt\bs#1\no#11\bs#1\bs#1\bs#1fi\en#1\rt#1
\bs#1def\bs#1bs\no#11\bg#1\bs#1ifx0\no#11\bs#1tbs\bs#1else\bs#1tbs bs\bs#1\no#11\bs#1fi\en#1\rt#1
\bs#1def\bs#1no\no#11\bg#1\bs#1ifx0\no#11\bs#1\no#1\bs#1else\bs#1tbs no\bs#1\no#11\bs#1fi\en#1\rt#1
\bs#1def\bs#1bg\no#11\bg#1\bs#1ifx0\no#11\bs#1\bg#1\bs#1else\bs#1tbs bg\bs#1\no#11\bs#1fi\en#1\rt#1
\bs#1def\bs#1en\no#11\bg#1\bs#1ifx0\no#11\bs#1\en#1\bs#1else\bs#1tbs en\bs#1\no#11\bs#1fi\en#1\rt#1
\bs#1def\bs#1rec\bg#1\bs#1tbs ifx0\bs#1\no#11\bs#1tbs quine1\bs#1tbs else\bs#1tbs rec\bs#1tbs fi\en#1\rt#1
\bs#1def\bs#1quine\no#11\bg#1\rt#1
\ifx0#1\quine1\else\rec\fi\en#1\rt#1
\bs#1begin\bg#1document\en#1\rt#1
\bs#1begin\bg#1alltt\en#1\rt#1
\bs#1quine0\rt#1
\bs#1end\bg#1alltt\en#1\rt#1
\bs#1end\bg#1document\en#1\rt#1
}
\begin{document}
\begin{alltt}
\quine0
\end{alltt}
\end{document}
ジャンル:
ウェブログ
コメント   この記事についてブログを書く
« 建国記念の日 | トップ | スパム検出機能追加 »
最近の画像もっと見る

コメントを投稿

Computer」カテゴリの最新記事