↓この記事がバズってますが、間違ったコメントをしている人が多いので解説します*1。
www.itmedia.co.jp
この記事は「等しいってどういう意味?」問題の記事です。「等しい」というのは曖昧な概念なんです。記事の内容とは違いますが、りんごとみかんで例えます。
- りんごが10個=みかんが10個
これは等しいのか?という話です。
- 同じ10個だから等しい
- りんごとみかんだから違う
という2つの解釈が出来ます*2。例えあなたが
「等しいとは、数が一致するときだけに使うべきだ!」
と主張しても、上の式は
- 数が一致しているから等しいね
- 数は一致しているけど、りんごとみかんは違うから「等しい」は適用できないね
と、やっぱり解釈がバラバラになってしまいます。
記事内にも書かれているとおり集合論でも厄介な問題です。
- 集合A:巨人、阪神、中日
- 集合B:ジャイアンツ、タイガース、ドラゴンズ
これも
- AとBは同じモノを意味しているから等しい(数学用語で同型写像)
- AとBは違う表現だから等しくない
という2つの解釈が出来ます。これは1(前者)の解釈が多そうですが次はどうでしょうか?
- 集合A:巨人、阪神、中日
- 集合B:タイガース、ジャイアンツ、ドラゴンズ
みなさんは↓のどちらで解釈しますか?
- AとBは等しい
- AとBは順番が違うから等しくない
数学だと集合の順番を問わないのが一般的なので、数学の世界だったら「等しい」です。プログラミングの世界だと順番を気にする場合があるので、文脈が分からないと結論は出ません。それに野球ファンだったら順番こそが重要でしょう。文脈によって「等しい」か「等しくない」かが決まるのです。
このように「等しい」は定義された概念ではなくて文脈から判断するのです。
人間だと論文の文脈から「等しい」「等しくない」を解釈できるのですが、コンピュータを使った論文チェックでは上手く解釈できないという問題があるのです。そして記事では
- 将来的には、コンピュータも人間みたいに解釈できるようになるのでは?
という予測が書かれているのですが、そこまで読まずに間違いコメントする人が多数発生。特に代入の話だと勘違いしている人が多い。人間よりもコンピュータのほうが文章を正確に解釈できる。という時代はもう目の前まで来ています。