【问题标题】:Scalaz StateT, no access to get / modifiy / put ?Scalaz 状态,无权获取/修改/放置?
【发布时间】:2019-04-13 12:24:37
【问题描述】:

在 scalaz 中,有没有办法访问:

blah: StateT[Future, state, result] = {
    _ <- StateT.get[state] 
    _ ...
}

似乎只有get modify 等只为State 而不是StateT 定义。我可以在源代码中找到对 StateT 的引用,但我无法找到导入它们的方法。如果我切换到猫,我可以访问 StateT.get,但我在使用 scalaz 的项目中。

谢谢

【问题讨论】:

    标签: scala functional-programming scalaz


    【解决方案1】:

    IIRC 在 Scalaz 中使用这些操作的方式是拉取MonadState 的实例并直接调用其上的方法:

    val S = MonadState[StateT[Future, State, ?], State]
    
    val blah = for {
      state <- S.get
    ...
    

    (这个sn-p使用kind-projector语法)

    【讨论】:

      猜你喜欢
      • 2011-12-05
      • 1970-01-01
      • 2014-03-20
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      • 2013-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多