scalaz

    7熱度

    2回答

    我正在使用Scalaz 7的EitherT來構造將狀態和\ /混合起來的理解。到現在爲止還挺好;我得到的東西,基本上就是: State[MyStateType, MyLeftType \/ MyRightType] 和,讓我建立-內涵是對<左側漂亮的變量 - 。我想不出如何從狀態動作返回元組。單個結果就好 - 在下面的代碼中,「val理解」正是我想要發生的事情。 但是當我想返回一個元組時,事情

    1熱度

    1回答

    假設你有一個看起來像這樣的EitherT: type StateListOfString[+T] = State[List[String], T] type MyEitherT = EitherT[StateListOfString, Int, Boolean] 如果你有一個換理解,可以返回左: my computation = for { a <- thingThatCouldR

    1熱度

    1回答

    在Scalaz在object Need我發現 def apply[A](a: => A) = { lazy val value0: A = a new Need[A] { def value = value0 } } 什麼(更自然的對我來說) def apply[A](a: => A) = { new Need[A] { priva

    6熱度

    1回答

    我想在我的應用程序中使用Scalaz 7驗證。但是,我遇到了使用|@|應用函數來解決我的故障的問題。下面的代碼我有: type ValidationResult = ValidationNel[String, Unit] def validate[A: ClassTag](instance: A, fieldNames: Option[Seq[String]] = None): Validat

    2熱度

    1回答

    無法弄清楚是否可以使用Scalaz 7寫這樣的東西。我試圖用代碼塊中的註釋表達自己。 def validate1(p: String) = ValidationNel[String, Value] = ... def validate2(p: String) = ValidationNel[String, Value] = ... validateCombination(p1: String

    7熱度

    1回答

    我有19個字符串需要驗證成各種類型。當所有的驗證都成功的時候,我想實例化一個表示一行電子表格的類(其中列不全都具有相同的類型)。 當一個或多個字符串無法驗證時,我想在NonEmptyList中累積錯誤。 如果有12個或更少的項目,我可以使用| @ |或申請12。如果我使用表達式,它會快速失敗並且不會發生累積。 當for表達式失敗時,我可以對失敗進行排序,但這意味着我循環了兩次。有沒有辦法使用sca

    17熱度

    2回答

    我有一個應用程序可以對不同的後端系統進行大量調用,希望能夠使用理解來簡化後端系統中的流程。 我期待結合EitherT(scalaz)和Future(scala 2.10),這樣我就可以捕獲第一個潛在錯誤(其未來或後端系統問題),並向最終用戶返回適當的消息。我已經快速查看了一個scalaz驗證,但是捕獲第一個錯誤而不是所有錯誤的建議是使用EitherT。 我想在REPL一個簡單的例子,第一個,但我發

    11熱度

    1回答

    我有以下代碼使用Reader monad進行配置,並且還必須處理IO[Option[String]],並且我已經使用我的encode函數中的階梯代碼結束了代碼。 我怎樣才能制定一個單子轉換爲Reader和OptionT避免我encode功能醜陋的嵌套for內涵? def encode(fileName: String): Reader[Config, IO[Unit]] = for {

    4熱度

    1回答

    我有一個monadic類型Exp,我想構建一個解析器來解析這樣的值。下面的代碼有效,但是我可以做些什麼更好/更酷的東西? def grid(x: Int, y: Int): Problem = ??? def expInt: Parser[Exp[Int]] = ??? def grid: Parser[Exp[Problem]] = for{ ex ~ _ ~ ey <

    2熱度

    1回答

    我正在使用scalaz 6.0和scala。我使用迭代從輸入流中讀取。 這裏是我簡單的叫做simple.txt的文件。 這 是 測試 我iteratee將建立一個IO單子打印線 def printLines: IterV[String, IO[Unit]] = { def step(currentIO: IO[Unit])(input: Input[String]): IterV[Str