I fonksiyonel programlama çalışmalarında bir acemi ve ben ValidationNEL [A, B] dizisi var ve ben yeni bir ValidationNEL içine hataları birikir istiyoruz [A, B]. Bu B eski kod gelen değişken veri yapısı olduğunu ve yüzden bir Seq [B] tutmak için oververbose olacağını gerçeğine bağlıdır. Processing a list of Scalaz6 ValidationBiriken sadece doğrulama hataları Scalaz
Benim anlayış hepsi uygun bir uygulamalı ve belki uygun bir çapraz geçiş yazma gelince:
I hatalarından ve başarıyı cumulating dizisi yöntemiyle mümkün olduğunu diğer yayınlardan biliyoruz.
trait MA[M[_], A] extends PimpedType[M[A]] with MASugar[M, A] {
def sequence[N[_], B](implicit a: A <:< N[B], t: Traverse[M], n: Applicative[N]): N[M[B]] =
traverse((z: A) => (z: N[B]))
def traverse[F[_],B](f: A => F[B])(implicit a: Applicative[F], t: Traverse[M]): F[M[B]] =
t.traverse(f, value)
}
Nasıl başlarım? Benim uygulamalı nasıl uygulanacağını öğrenmek için Scalaz kaynak koduna aramaya çıktığında, ben son derece karıştı. Hangi başvurunun, hem başarısızlıkların hem de Validasyondaki başarının birikmesine izin vereceğini bile öğrenemedim. Şimdi biraz daha iyi sorunuzu anlaması
Eğer Seq dan [ValidtionNEL [A, B]] ValidationNEL [A, Sek [B]] ya da bir şey benzer gitmeye çalışıyorsunuz? – Noah
Hayır Seq [ValidtionNEL [A, B]] - ValidationNEL [A, B] – Edmondo1984
Bu nedenle ValidationNEL yalnızca Doğrulama [NonEmptyList [A], B] olur, böylece B'yi birlikte ekleyemezseniz sorduğunuz şeyi yapamazsınız (ints , listeler, vb. – Noah