kleisli

    6熱度

    1回答

    假設我有 type VS[A] = Validation[String, A] val v: VS[Option[A]] val f: A => VS[B] 我想VS[Option[B]]類型的結果,但如果v是Success(None),結果也應該是Success(None)。這裏有一個例子: scala> val v: VS[Option[String]] = some("4.5").

    0熱度

    1回答

    我已經花了,而黑客在此,仍然不能完全得到該型系統與我同意這種抽象是一個真正的 ObjectMapper => A => Either[Throwable, B] 我現在的類型看起來像 import cats._ import cats.data.{Reader, Kleisli, EitherT} import cats.implicits._ import com.fasterxml.

    2熱度

    1回答

    預先感謝您的幫助 我有2個功能,我想通過Kleisli箭頭組成。這些函數接受String併產生FreeC。 kleisli箭頭創建時沒有問題,但編譯器抱怨找不到。我會切出部分代碼進行簡單: import scalaz._ import Scalaz._ import Free.FreeC import Free._ import Kleisli._ trait AppCompose {

    9熱度

    1回答

    我想在Scala中使用>=>(Kleisli箭頭)。據我瞭解,它構成了返回monad的函數。現在我試試看如下: scala> val f = {i:Int => Some(i + 1)} f: Int => Some[Int] = <function1> scala> val g = {i:Int => Some(i.toString)} g: Int => Some[String]

    4熱度

    3回答

    我想知道是否有方法將List[Kleisli[Option, Int, Int]]轉換爲Kleisli[Option, Int, List[Int]]。 特別是我有這樣形成kleisli名單: 我要做的就是以下 Kleisli[Option, Int, List[Int]](m => kList.map(_.run(m)).sequence) 這是非常凌亂,沒有表現,需要大量的人工勞動。 有沒

    3熱度

    1回答

    這是我以前的question的後續。看起來我仍然沒有得到它。現在我試圖編寫返回作家 monad的函數。 scala> val f = {x:Int => Writer("doing " + x + ";", x + 1)} f: Int => scalaz.WriterT[scalaz.Id.Id,String,Int] = scala> Kleisli(f) >=> Kleisli(f

    3熱度

    1回答

    如果我有以下兩種Kleisli箭頭: stdoutProcessA :: Kleisli Maybe String (IO String) writeToFileA :: Kleisli Maybe (FilePath, String) (IO()) 我希望能夠寫成才,如: compile = proc src -> do output <- stdoutProcessA -< "

    1熱度

    2回答

    我按照書功能和無功領域建模 而對於一些服務方式,它只是代表工作到存儲庫層的設計。有沒有辦法減少這個樣板: trait FeedbackServiceImpl extends FeedbackService { override def saveTFE(feedback: TripFeedbackEvent) = Kleisli[Future, Context, Either[S

    7熱度

    4回答

    在Haskell Control.Arrow文檔中,它討論了Kleisli箭與monads的關係,但是我不清楚如何使用它。我有一個我認爲適合箭頭的功能,除了它涉及IO monad,所以我認爲Kleisli箭頭可能會有所幫助。 以下函數返回一對目錄的原始文件名和修改後的文件名。 import System.Directory import System.FilePath datedFiles