無限ループの夏(1)

無限ループの夏(2)

 情報処理部。
 我が新聞部と同じく、文化部として活動しているということは前から知っていた。しかし部室を訪ねるのは、一年四ヶ月の学生生活にして今日が初めてだ。
 やはり、少し緊張する。二人の部員が一年先輩であることも影響しているだろう。

 部室の前で一呼吸する。ノックをしようと、右手を上げた瞬間。
 その部室の扉が勢いよく開いた。

「お客さん発見!」
「うわあ!」

 明るい茶色のショートカット。愛くるしい丸顔と大きな瞳。人当たりの良さそうな女生徒が突然目の前に現れた。思わず叫び声を上げてしまう。

「ようこそいらっしゃいました。なんのもてなしもできませんが。あー、土足のままおあがりください」
「あ、……どうも」

 なんだかよくわからないまま部室の中に通される。
 新聞部とそう変わらない広さの部室には、もう一人女生徒がいた。

「……お客さん? 絵子」
「うん。そーみたい」
「あのー……新聞部の、茨目《いばらめ》奈乃《なの》です」
「篠宮《しのみや》樹里《じゅり》です。よろしく」

 部室の中央、事務用机の正面に座っていた女生徒が会釈する。
 腰のあたりまで長く伸びた美しい黒髪。キリッとした目鼻立ちにハスキーな声が、なんとなく近寄りがたいような恐れ多いような印象を受ける。こういう人、クールビューティとでも言うんだったか。

「あ、樹里は副部長だからね。部長は私、瀬尾《せのお》絵子《えこ》。瀬尾絵子をよろしく」

 選挙の演説みたいな挨拶だ。この先輩は、どうにも掴みどころがない。
 非常に対照的な二人ではあるが、どちらもかなりの美人であることは認めざるを得ない。

「で、どうしたの? 今日は。取材? それとも部室破り? あ、まさか新聞部と情報処理部《ウチ》が合併とか? M&A?」
「実は、見ていただきたいものがありまして」

 私は樹里先輩に向けて、例の紙切れを差し出した。絵子先輩には悪いが、多分この人の方が話が早く進む。私の勘がそう告げる。

「部活動の忙しい時間に失礼します。実は、この紙に書かれているプログラムのような文章が気になりまして。お二人なら何か気づくことがあるのでは、と……」
「どれ」

 樹里先輩はその紙切れを受け取ると、眉間にしわを寄せながら読み出した。その表情もそれなりに絵になる。

for (;;) {
  delete pants;
}

「……ふむ。確かに、プログラムのソースコードに見えるな」
「え、見せて見せて」

 絵子先輩も一緒に覗き込む。必要以上にくっつきすぎではないかと思ったが、まあそれはいい。

「これって、JavaScript? かな?」
「これだけでは判別できない。JavaScriptでもJavaでもC++でもC#でもObjective-Cでも、文法としては正しい」
「あ、そうなんだ」
「正しいが……記述としては大間違い。最悪のコードだな」
「だよねー」
「あのー……」

 恐る恐る声をかける。二人の邪魔をするようで気がひけるが、私は別に新婚カップルに取材に来たわけではない。当初の目的に話を戻さなければ。

「どの辺が最悪なんでしょうか?」
「このプログラムは、終了しない。永遠に」
「?」

 首をかしげる。なんとなくわかるようで、でもピンとこない。

「ここに書かれているのは、いわゆる『ループ文』というプログラムの記述だ。何らかの処理を繰り返し実行したい時に使われる文である」

 私の目を真っ直ぐに見つめたまま、樹里先輩はプログラムの解説を続ける。

「ループ文というのは、必ず継続の条件が書かれるものだ。変数の数値などが、ある条件を満たす間は実行させ、そうでなくなった時に速やかに終了する。……というのが、ループ文の基本だ」

 樹里先輩が頷く。私もつられて頷く。ついでに絵子先輩もなぜか頷く。

「しかし、このループには終了条件が書かれていない。つまり、実行したが最後、永遠に終わることがない。このようなループを、俗に……」

 樹里先輩は突如立ち上がり、私の顔に自分の顔を一気に近づけた。
 その距離、約二十センチ。

「……無限ループ、と呼ぶ」

 一気に汗が噴き出した。心臓がバクバク言ってる。多分顔も真っ赤だろう。
 右手の人差し指を立てて得意げに微笑む樹里先輩。至近距離で見て、男女問わず人気が高い理由にも大いに納得できる。
 樹里先輩が動くたびに長い黒髪が揺れ、シャンプーの香りが辺りに振り撒かれる。さらにクラクラしてきた。

「ところで。新聞部の茨目くん」
「は、はいっ」

 あの、もうちょっと離れて喋ってください。お願いします。あとすごくいい匂い。

「何の調査をしているのかな? 興味が出た。詳しい話を聞きたい」

 私はもう、何度も首を縦に振ることしかできなかった。こんなおもちゃ、どこかで見たななどと考えながら。

「ふむ。連続下着窃盗事件か」

 私が語る事件のあらましに、二人は耳を傾けてくれた。絵子先輩が出してくれたお茶を三人ですすりながら。

「やっぱり情報処理部としては、このコードの意味が気になるね」
「わざわざ犯人が現場に残したということは、何らかのメッセージが含まれていると考えるべきだろうな」
「無限ループ……つまり、無限に盗み続けるよ、ということなのかな?」
「それは難しいんじゃないか。プールの授業は実質半月くらいだし、それ以外で犯行に及ぶのは至難の業だと思われる」
「うーん、だよねえ。他にパンツ脱ぐシチュエーションないもんね」
「水泳部ならまだしも、な」
「あと、delete pantsって構文だけど。パンツを盗みましたよ、と単純に受け取っていいのかな」
「プログラムにおけるdelete文は、宣言済みの変数をメモリから解放する時に使われる。そこから考えると深読みもできるが……」
「人類をパンツから解放するのが目的とか」
「どんな教義だ……」

 二人の表情はとても生き生きして楽しそうだ。きっと非常に仲が良いのだろう。あらぬ噂が立ったりはしないのだろうか。……立ててみようか、という邪念が少しだけ、ほんのほんの少しだけ頭をもたげる。

「さて、新聞部の茨目くん」
「あ、はいっ」

 さっきから名前を呼ばれる度に、過剰にびっくりしてばっかりだな、私は。

「事件のあった日と、被害者の名前。もう一度教えてほしい」

 私は手帳のメモを樹里先輩に見せる。
 樹里先輩は、その情報をホワイトボードに書き込みながら、時系列を整理するようだ。

「なるほど……桐谷くんが三日前、今週の月曜日か。で、城ヶ崎くんがその三日前、先週の金曜日。茨目くんがその一日前で、最初の灰住くんがその二日前、と」
「平日が三日続いたのに、次の犯行はなし、なんだね」
「そうだな。桐谷くんで終わりなのか、私達の知らない被害者がいるのか、それとも……」

 腕組みをして考え込んでいた樹里先輩が、私に向かって突然言い放った。

「メールアドレス」
「は、はい?」
「Slackに招待する。メールアドレスを教えてほしい」
「あ、はい、ありがとうございます、すらっく?」

 混乱して訳のわからない返答をしてしまった。

「要はチャットツールだよー」
「何か新しい動きがあったらそれで連絡してほしい。こちらも、何かわかったら連絡する。だから、アプリをインストールしておくように」
「樹里は電話とかキライだからねー。Slackで呼びかける方が早いよ。あ、私はちゃんと電話に出るから安心してね」

これが、情報処理部の先輩二人との、最初の出会いだった。