0
にempty`値、しかし、リストが空であるため、この場合はNone
を返すものはありません。空文字列でも便利です。猫応用的リフト `その空虚の概念を持ちながら、オプションに値を持ち上げる方法がある場合、私は思っていたオプション
にempty`値、しかし、リストが空であるため、この場合はNone
を返すものはありません。空文字列でも便利です。猫応用的リフト `その空虚の概念を持ちながら、オプションに値を持ち上げる方法がある場合、私は思っていたオプション
これを実行できるようにするには、空文字をtypeclassとして実装する必要があります。その後、リフトの実装は
def liftOption[A : Empty](a: A): Option[A] =
if (Empty[A].isEmpty(a)) None else Some(a)
かなり簡単になりますがあり猫にこれを置くかどうかについて、いくつかのdiscussionsはあったが、今では、実際にあなたができるすべてのApplicative
にそれを拡張することができalleycats
に常駐Empty
(あなたは空の型を一致させるためにいくつかのadjustementsを必要とすることができるが、それは考えを示し):
def liftE[A: Empty, F[_]: Applicative, Empty](a: A): F[A] =
if (Empty[A].isEmpty(a)) Empty[F]
else Applicative[F].pure(a)
あなただけのリストケースを気にする場合は、あなたが実際に 'NonEmptyLを使用する場合がありますist': val res:オプション[NonEmptyList [String]] = NonEmptyList.fromList(list) ' –