IsEmpty

PlusEmptyを継承した型クラスです。以下のような定義です。

trait IsEmpty[F[_]] extends PlusEmpty[F] { self =>

  def isEmpty[A](fa: F[A]): Boolean

  // その他のメソッド省略
}

日本語で説明すれば

「型引数がどんなものであろうとも、それに関係なく空かどうか?が必ず判断可能な型クラス」

といったところでしょうか。 この説明はPlusEmptyと比べた場合の話です。

PlusEmptyにはdef empty[A]: F[A]というメソッドがあります。 FがPlusEmptyのインスタンスでIsEmptyのインスタンスではない場合でも、Equal[F[A]]のインスタンスがあればemptyメソッドで生成したものと比較することによって「空かどうか?」は判断可能です。 逆に言うと PlusEmptyのインスタンスだがIsEmptyのインスタンスではない場合は Equal[F[A]]のインスタンスがなければ 空かどうかは判断できません。

単にそれだけの型クラスで、あまり難しくはないと思います。自分が知る限り、他の型クラスがある言語でも、この型クラスはあまり見かけませんother-lang

other-lang. 誰か他の言語での例があれば教えて下さい

results matching ""

    No results matching ""