マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

TeX で草を生やす件について(まだ生えてません)

C>type knuth.www
wwwWWWwwWWWwwWWwvwwWWwWWWwWWWWwvWWwWWWwWWWWwWWWWwvwWWwwwwwwwwwWwwwwwwwwwwwWWWWWW
wwwwwwwwwwwWwwWWWWWWWWWwwwwwwwwwwwwwWwwWWwWWWWWwWWWWwWWWWWWWWWWWWWWWWWwwwWWWWWWW
WWWWWWWWWWWwwwwwwwWWWWWWWWWWWWWWWWWWWwwwWWWWWWWWWWWWWWWWWWWWwwwwwww

C>grassator knuth.www & echo.
\TeX
C>
ZR「やったー♪完成!」((念のため補足しておくと、Windowsコマンドプロンプトの上で実行している。「C>」はプロンプト、「& echo.」は sh の「; echo」に相当し、grassator 実行後に改行させている。))
*「………………。」
ZR「ん?」
*「TeX の制御綴をコンソールに出力して何が嬉しいんですか!?」
ZR「ほう、何なら良いのかね」
*「当然 TeX でしょ!! その『\TeX』が実行されて、それで、TeX のロゴが出力される!」
ZR「いやー、意外かも知れんが、世の中 TeX が全てじゃないんだよ」
*「解ってます! 世の中はそうに決まってます! でもこのブログに TeX でないものがあって何の意味があるんですか!?」
ZR「えー、自分のブログだから、別に何でもいいじゃん」
*「そもそも、もう Grass の処理系なんてネットに溢れかえっているし、AWK とか bash とかで作っている人もいるのに、今さら Luaインタプリタを作ってもネタにすらならないじゃないですか」
ZR「いやいや、Ruby でも bash でもなくて Lua であることに意味があるんだよ」
C>type test-grass.tex
\documentclass[a4paper]{article}
\usepackage{ixgrassator}
\begin{document}
\begin{execgrass}
wwwWWWwwWWWwwWWwvwwWWwWWWwWWWWwvWWwWWWwWWWWwWWWWwvwWWwwwwwwwwwWwwwwwwwwwwwWWWWWW
wwwwwwwwwwwWwwWWWWWWWWWwwwwwwwwwwwwwWwwWWwWWWWWwWWWWwWWWWWWWWWWWWWWWWWwwwWWWWWWW
WWWWWWWWWWWwwwwwwwWWWWWWWWWWWWWWWWWWWwwwWWWWWWWWWWWWWWWWWWWWwwwwwww
\end{execgrass}
\end{document}

C>lualatex test-grass.tex
This is LuaTeX, Version beta-0.70.1-2011100723 (rev 4277)
……(中略)……
Output written on test-grass.pdf (1 page, 8983 bytes).
Transcript written on test-grass.log.

C>start test-grass.pdf
ZR「いやー素晴らしい! これにて一件落着! 皆さん、TeX なんかやめて LuaTeX を使いましょう!」
*「LaTeX 文書の上で Grass のプログラムが今まで動かせなくて今まで困っていた人にはとっても有難いことで……って違う!実用の話じゃない!」
ZR「いやいや、これからは TeX ネタも TeX 言語じゃなくて Lua で実装する時代ですよ!」
*「えー」
ZR「…というか真面目な話、この Lua で書いた bushfire モジュール自体、本質の部分だけ抜き出しても 300 行以上あって、これを TeX のコードに直すのは、単なるネタとしては重すぎて…」
*「ちょっと待った。RubyPython でのインタプリタ実装って、本質部分だけだと 150 行位しかないじゃん。何でそんなに長くなるの?」
ZR「いや、それは、TeX で実装しやすいように、苦手な処理をできるだけ避けて実装しているからで、例えばリストはなるべく使わずに固定の配列を使うとか、あと、コールスタックは TeX のグルーピングを使って……」
*「やっぱり TeX で実装しようとしてるじゃないですか!!!
ZR「………………………………。」
*「完成を楽しみにしてまーす♪」
ZR「…………そうだ! 問題なのは『ネタとして需要があるか』だ。だから判断を賢明な読者に任せよう。『TeX で実装されたインタプリタが見たい』という人はコメントにそう書いてほしい。しばらく経って誰も書いてこなければそんなネタは不要だという訳だ。うん、いいことを思いついたなー」