アプリケーションファンクター (単一で失敗するだけでなく、複数の例外をキャッチするモナド) で検証を試みたときに、14 を超えるファンクターを禁止する scalaz のハードリミットに遭遇したので、ここからの有益なコメント ( https://github .com/scalaz/scalaz/issues/504#issuecomment-23626237 ) は、アプリケーション ファンクターの代わりに HList を使用するように案内してくれました
今では完全に正常に動作します (Maven https://github.com/typelevel/shapeless-contrib/blob/master/scalaz/main/scala/sequence.scalaにないため、ここからこのシーケンス ファイルを手動で配置する必要がありますか?ソース=c )
私の質問は、これが可能であることを知っています。case class Foo(i:Int,s:String)
手動でパターンをケースと一致させることなく、パラメーターを再度適用するだけで、自動的にインスタンス化する方法を教えてください。
本質的に私はこのようなことをしたい
case class Foo(i:Int,s:String)
implicit def TwoFoo = Iso.hlist(Foo.apply _, Foo.unapply _)
val someFoo = sequence(
1.successNel[Int] ::
"2".successNel[String] ::
HNil
).map { Foo.apply _} // Note this doesn't work
someFoo match {
case Success(a) => println(a)
case Failure(a) => {
println("failure")
println(a)
}
}