Şu anda scalaz State Monad ile oynamaktayım. Bir başlangıç durumuna dinamik bir modifikasyon uygulanacak bir işlem boru hattı uygulamak istiyorum. Tüm süreçler tamamlandıktan sonra nihai bir Devlet çıkmak istiyorum.Bir scalaz State Monad üzerindeki talihsizliklerin listesini anlamadan nasıl uygulayabilirsiniz
İşte daha iyi bir grafik örneği.
+-------+ +-------+ +-------+
| | | | | |
Initial State +-----> | m1 | +----> | m2 | +----> | m3 | +----> Final State
| | | | | |
+-------+ +-------+ +-------+
Ben Bu şimdiye kadar çalışır bu kodu
import scalaz._
import Scalaz._
object Main2 {
def main(args: Array[String]) {
val m1 = State[String, Unit] { (x:String) =>(x + " " + x,())}
val m2 = State[String, Unit] { (x:String) =>(x.toUpperCase(),())}
val m3 = State[String, Unit] { (x:String) =>(x.toLowerCase(),())}
val finalState = for(
_ <- m1;
_ <- m2;
f <- m3
) yield (f)
println(finalState.run("Foo"))
}
}
ile geldi ama öylesine anlama için kullanamazsınız derleme zamanında modiffications tam sayısını bilmiyorum. i gerekenler
o ben bir anlama için aynı etki kullanırsınız gibi yani bu
import scalaz._
import Scalaz._
object Main2 {
def main(args: Array[String]) {
val m1 = State[String, Unit] { (x:String) =>(x + " " + x,())}
val m2 = State[String, Unit] { (x:String) =>(x.toUpperCase(),())}
val m3 = State[String, Unit] { (x:String) =>(x.toLowerCase(),())}
type MyState = State[String, Unit];
val modifications = List[MyState](m1,m2,m3);
modifications.???.run("Foo")
}
}
- nasıl başlangıç durumuna üzerinde Foo durum bilgisi hesaplamaların bu listeyi uygulayabilirsiniz nedir?
- Bunu bir hata hızında başarısızlık hata kullanımıyla nasıl birleştirebilirim?
Bu, hata işleme konusunda yaptığım değişiklikler için daha iyi bir imza olur mu? Yardımlarınız
Her iki çözüm de gerçekten işe yaradı! Teşekkürler – Jay