無限ループの夏(2)
情報処理部。
我が新聞部と同じく、文化部として活動しているということは前から知っていた。しかし部室を訪ねるのは、一年四ヶ月の学生生活にして今日が初めてだ。
やはり、少し緊張する。二人の部員が一年先輩であることも影響しているだろう。
部室の前で一呼吸する。ノックをしようと、右手を上げた瞬間。
その部室の扉が勢いよく開いた。
「お客さん発見!」
「うわあ!」
明るい茶色のショートカット。愛くるしい丸顔と大きな瞳。人当たりの良さそうな女生徒が突然目の前に現れた。思わず叫び声を上げてしまう。
「ようこそいらっしゃいました。なんのもてなしもできませんが。あー、土足のままおあがりください」
「あ、……どうも」
なんだかよくわからないまま部室の中に通される。
新聞部とそう変わらない広さの部室には、もう一人女生徒がいた。
「……お客さん? 絵子」
「うん。そーみたい」
「あのー……新聞部の、茨目《いばらめ》奈乃《なの》です」
「篠宮《しのみや》樹里《じゅり》です。よろしく」
部室の中央、事務用机の正面に座っていた女生徒が会釈する。
腰のあたりまで長く伸びた美しい黒髪。キリッとした目鼻立ちにハスキーな声が、なんとなく近寄りがたいような恐れ多いような印象を受ける。こういう人、クールビューティとでも言うんだったか。
「あ、樹里は副部長だからね。部長は私、瀬尾《せのお》絵子《えこ》。瀬尾絵子をよろしく」
選挙の演説みたいな挨拶だ。この先輩は、どうにも掴みどころがない。
非常に対照的な二人ではあるが、どちらもかなりの美人であることは認めざるを得ない。
「で、どうしたの? 今日は。取材? それとも部室破り? あ、まさか新聞部と情報処理部《ウチ》が合併とか? M&A?」
「実は、見ていただきたいものがありまして」
私は樹里先輩に向けて、例の紙切れを差し出した。絵子先輩には悪いが、多分この人の方が話が早く進む。私の勘がそう告げる。
「部活動の忙しい時間に失礼します。実は、この紙に書かれているプログラムのような文章が気になりまして。お二人なら何か気づくことがあるのでは、と……」
「どれ」
樹里先輩はその紙切れを受け取ると、眉間にしわを寄せながら読み出した。その表情もそれなりに絵になる。
for (;;) {
delete pants;
}
「……ふむ。確かに、プログラムのソースコードに見えるな」
「え、見せて見せて」
絵子先輩も一緒に覗き込む。必要以上にくっつきすぎではないかと思ったが、まあそれはいい。
「これって、JavaScript? かな?」
「これだけでは判別できない。JavaScriptでもJavaでもC++でもC#でもObjective-Cでも、文法としては正しい」
「あ、そうなんだ」
「正しいが……記述としては大間違い。最悪のコードだな」
「だよねー」
「あのー……」
恐る恐る声をかける。二人の邪魔をするようで気がひけるが、私は別に新婚カップルに取材に来たわけではない。当初の目的に話を戻さなければ。
「どの辺が最悪なんでしょうか?」
「このプログラムは、終了しない。永遠に」
「?」
首をかしげる。なんとなくわかるようで、でもピンとこない。
「ここに書かれているのは、いわゆる『ループ文』というプログラムの記述だ。何らかの処理を繰り返し実行したい時に使われる文である」
私の目を真っ直ぐに見つめたまま、樹里先輩はプログラムの解説を続ける。
「ループ文というのは、必ず継続の条件が書かれるものだ。変数の数値などが、ある条件を満たす間は実行させ、そうでなくなった時に速やかに終了する。……というのが、ループ文の基本だ」
樹里先輩が頷く。私もつられて頷く。ついでに絵子先輩もなぜか頷く。
「しかし、このループには終了条件が書かれていない。つまり、実行したが最後、永遠に終わることがない。このようなループを、俗に……」
樹里先輩は突如立ち上がり、私の顔に自分の顔を一気に近づけた。
その距離、約二十センチ。
「……無限ループ、と呼ぶ」
一気に汗が噴き出した。心臓がバクバク言ってる。多分顔も真っ赤だろう。
右手の人差し指を立てて得意げに微笑む樹里先輩。至近距離で見て、男女問わず人気が高い理由にも大いに納得できる。
樹里先輩が動くたびに長い黒髪が揺れ、シャンプーの香りが辺りに振り撒かれる。さらにクラクラしてきた。
「ところで。新聞部の茨目くん」
「は、はいっ」
あの、もうちょっと離れて喋ってください。お願いします。あとすごくいい匂い。
「何の調査をしているのかな? 興味が出た。詳しい話を聞きたい」
私はもう、何度も首を縦に振ることしかできなかった。こんなおもちゃ、どこかで見たななどと考えながら。
▼
「ふむ。連続下着窃盗事件か」
私が語る事件のあらましに、二人は耳を傾けてくれた。絵子先輩が出してくれたお茶を三人ですすりながら。
「やっぱり情報処理部としては、このコードの意味が気になるね」
「わざわざ犯人が現場に残したということは、何らかのメッセージが含まれていると考えるべきだろうな」
「無限ループ……つまり、無限に盗み続けるよ、ということなのかな?」
「それは難しいんじゃないか。プールの授業は実質半月くらいだし、それ以外で犯行に及ぶのは至難の業だと思われる」
「うーん、だよねえ。他にパンツ脱ぐシチュエーションないもんね」
「水泳部ならまだしも、な」
「あと、delete pantsって構文だけど。パンツを盗みましたよ、と単純に受け取っていいのかな」
「プログラムにおけるdelete文は、宣言済みの変数をメモリから解放する時に使われる。そこから考えると深読みもできるが……」
「人類をパンツから解放するのが目的とか」
「どんな教義だ……」
二人の表情はとても生き生きして楽しそうだ。きっと非常に仲が良いのだろう。あらぬ噂が立ったりはしないのだろうか。……立ててみようか、という邪念が少しだけ、ほんのほんの少しだけ頭をもたげる。
「さて、新聞部の茨目くん」
「あ、はいっ」
さっきから名前を呼ばれる度に、過剰にびっくりしてばっかりだな、私は。
「事件のあった日と、被害者の名前。もう一度教えてほしい」
私は手帳のメモを樹里先輩に見せる。
樹里先輩は、その情報をホワイトボードに書き込みながら、時系列を整理するようだ。
「なるほど……桐谷くんが三日前、今週の月曜日か。で、城ヶ崎くんがその三日前、先週の金曜日。茨目くんがその一日前で、最初の灰住くんがその二日前、と」
「平日が三日続いたのに、次の犯行はなし、なんだね」
「そうだな。桐谷くんで終わりなのか、私達の知らない被害者がいるのか、それとも……」
腕組みをして考え込んでいた樹里先輩が、私に向かって突然言い放った。
「メールアドレス」
「は、はい?」
「Slackに招待する。メールアドレスを教えてほしい」
「あ、はい、ありがとうございます、すらっく?」
混乱して訳のわからない返答をしてしまった。
「要はチャットツールだよー」
「何か新しい動きがあったらそれで連絡してほしい。こちらも、何かわかったら連絡する。だから、アプリをインストールしておくように」
「樹里は電話とかキライだからねー。Slackで呼びかける方が早いよ。あ、私はちゃんと電話に出るから安心してね」
これが、情報処理部の先輩二人との、最初の出会いだった。