はじめに
最近、人類は手書きで文字を書かなくなってきました。文字を書くこと自体は増えているのに、「自分の手で文字を書く」機会は、確実に減っています。そんな中、久しぶりに紙に文字を書いていて、私は E と ヨ を書き間違えました。かなり恥ずかしい出来事でしたが、同時に、これは不注意ではなく設計の問題ではないかと思いました。
問題は形ではなく「型がない」こと
E と ヨ が似ているのは事実です。ただ、本質はそこではありません。問題は、考えながら先頭から文字を書いていくという書き方そのものにあります。
先頭の一文字を書いている時点では、それが日本語なのか英語なのか、カタカナなのかアルファベットなのか、少なくとも視覚的にはまだ決まっていません。にもかかわらず、人類は文字の順番に従って、そのまま書き進めてしまいます。
エンジニア的に見ると、これは型が決まる前に値を代入しているようなものです。紛らわしい文字で事故るのは、むしろ自然な結果です。
解決策は、評価を遅らせること
そこで発想を変えます。迷う文字は、最後に書きます。たとえば「ヨット」。普通は「ヨ→ッ→ト」と書きますが、これを「ッ→ト→ヨ」にします。「ット」が書かれた時点で、型はほぼ確定します。視覚的にも脳内にも、これはカタカナ語だと刻まれ、その瞬間、頭文字の候補は自然に「ヨ」に絞られます。E はここでコンパイルエラーになります。
これは人間版・遅延評価
やっていることは単純で、遅延評価(lazy evaluation) そのものです。先に確定できる情報を集め、型が決まってから評価する。人間の脳も、これをやると驚くほど安定します。単体の文字は弱いですが、文字列になると一気に強くなります。一番曖昧なものを、一番最後に回すのが合理的です。
おわりに
E と ヨ を書き間違えたのは、注意力が足りなかったからではありません。まだ型が決まっていない文字を、先に評価してしまっただけです。人類が手書きで文字を書かなくなった今、昔の「ちゃんと書け」はもう通用しません。だから順番を変えます。人を直すのではなく、評価のタイミングを直します。
ヨットは「ット」から書く。
E = mc² は「= mc²」から書く。
それだけで、脳はちゃんと安全に動きます。