私は最近、Scalaに2回目のチャンスを与え、私が常に実装しているプロジェクト(関数型または疑似関数型言語)から始めました。命題論理(および後の述語論理)の自動推論です。
今、私は言語自体の命題論理の表記をできるだけきれいにしようとしました、そして私はこれまでに-暗黙の変換(文字列->アトム)で得ました:
("A" and "B") implies "C"
関数「and」と「implies」(および「or」と「equivalent」)は、関連するケースクラスコンストラクターを呼び出す単純なメソッドです。ただし、「not」を実装すると、次の2つの表記のいずれかに固執します。
("A" and "B").not
Not("A" and "B")
Scalaをだまして希望を受け入れる方法はありますか?
not("A" and "B")
将来的には、クラスの名前を「Not」から「not」に変更せずに、「¬」などと呼びたいと思うかもしれません。