问题标签 [kleisli]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 如何使用 Kleisli 实现缓存
我遵循了《功能和反应式建模》一书中的设计原则。
所以所有的服务方法都返回Kleisli
。
问题是如何在这些服务上添加可更新缓存。
这是我目前的实现,有没有更好的方法(现有的组合器,更多功能的方法,......)?
[更新] 关于@timotyperigo 的评论,我已经在存储库级别实现了缓存
我仍然对改进设计的反馈感兴趣。
scala - 使用 scalaz kleisli 之前没有显式包装函数
假设我有两个函数val f: A => M[B]
,val g: B => M[C]
其中 M 是一元的。因此,我想通过使用 kleisli 将它们组合起来。我目前所做的是:kleisliU(f) andThenK g
但是我还没有找到一种方法来执行这种组合,而无需先手动包装到 kleisli 中。
怎么能写出这样的东西f <???> g
,f
自动包装到kleisli中,然后再结合g
?我希望 scalaz 中已经存在一些东西,并且我不需要编写自己的隐式类/转换。
只是为了完整起见,这也应该与更多功能一起使用,例如f <???> g <???> h
.
scala - 从 monad 中提取(解除?)函数
我需要从 monad 中提取函数,这对于任何 monad 都是可能的:
我在 scalaz 和 hoogle 中都找不到这样的功能。
我试图在 Kleisli 上使用排序(这个想法是做 sequence . join )或 unlifting 来达到同样的效果,但这变得过于复杂,所以我停止了。
我的问题是 - 我只是找不到这个功能还是没有人出于任何原因使用它(如果是,那么如何实现相同的目标)?
谢谢!
haskell - 函数和 Kleisli 箭头的应用
(.)
并且(<=<)
非常相似:
并且可以作为Category
类型类((->)
和Kleisli
实例)中的方法使用:
($)
并且(=<<)
也非常相似:
是否有抽象这些应用程序功能的类型类?
scala - 如何在 Scala Cats 中创建一个 EitherT 的 Kleisli 实例?
我花了一段时间来研究这个,但仍然无法让类型系统同意我的观点,即这种抽象实际上是一个
我目前的类型看起来像
为了测试实例化这种类型,我编写了一个非常简单的函数,它接受一个 jsonString
并返回一个Either[Throwable, JsonNode]
我收到此错误消息:
我意识到这种类型有点麻烦,并且肯定可以改进(并且可能是矫枉过正),但我现在正在深入研究这个,以了解更多关于 Cats 和 Scala 类型系统的信息,以便我自己的个人成长。Scala 试图告诉我什么是错误的,在这里,我应该如何解决这个问题?
scala-cats - 如何将 Kleisli[Try, I, A] 转换为 I => A
是否有现有的组合器或更好的编写方式?
scala - Kleisli 列表到 Kleisli 列表
我想知道是否有办法List[Kleisli[Option, Int, Int]]
转向Kleisli[Option, Int, List[Int]]
.
特别是我有这样的 kleisli 列表:
我做的是以下
这非常混乱,没有表现力,需要大量的手工工作。
有没有更好的办法?
scala - 如何将 Scala Cats 的 Kleisli 与 Either 一起使用
我正在尝试使用 Kleisli 来编写返回 monad 的函数。它适用于选项:
但我不能让它与 Either... 一起工作:
我猜 Either 有两个类型参数,而 Kleisle 包装器需要一个输入和一个输出类型参数。我不知道我怎么能从 Either 中隐藏左类型...
scala - 让 State 如何与 Kleisli 合作?
我有一个用 State monad 包装的记录器的示例:
哪个效果很好,但我对添加 State monad 之前并不满意,代码更加清晰,即:
我想知道如何让 State 与 Kleisli 合作?这样所有的单子都会像一个一样一起工作?
而不是logger
意志的作用i2f
和f2s
功能,也能在里面起作用?