Prologで日本語変数を利用するとWarning

Prologで日本語変数名を利用していると、Swi-Prologでは以下のようなWarningが出てしまいます。

Warning: /some/workspace/japanese_program.pl:1:
    Singleton-marked variable appears more than once: _日本語

このエラー、Singleton変数を「_」にしていない場合に生じるエラーのようですが、どういうわけか、日本語の場合(というか非ASCII文字一般)だと、Singletonでない場合にも生じてしまうようです。

どうやら仕様のようだ、との指摘もあるので、諦めるか、リンク先のページにあるように以下の対応を取る他なさそうです。

  • 変数名に日本語を利用するのをやめる
    • それができれば話は早いんだけどね、という対応です。
  • Singleton変数へのWarningをやめる
    • 確かに必ずしも必要ないWarningですが、タイポ検出に有用なWarningなのでできれば出しておきたいWarningです。
  • ハンガリアン記法を利用する
    • 若干気持ち悪いですが、一文字目をアンダーバーにせず、英大文字から始めるようにすれば、途中で日本語を利用していたとしてもこのWarningを抑制できるようです。

参考