monads

    1热度

    2回答

    我要通过国家单子here,我想要实现: import Control.Monad.Reader import Control.Monad.Writer import Control.Monad.State type Stack = [Int] pop :: State Stack Int pop = State $ (x : xs) -> (x, xs) 不过,我发现了以下错误:

    0热度

    1回答

    我想做runST内兰德-单子,但我不能得到正确的类型,并从GHC输出不是特别有帮助:输入 import Control.Monad import Control.Monad.Random as MR import Control.Monad.ST import Control.Monad.Trans import qualified Data.Vector.Unboxed

    2热度

    3回答

    我正在通过Monad Transformers,我了解它们的主要作用是提供一个monadic容器来容纳不同类型的monads,它提供了一个通用接口,可以在该接口中操作计算中的“嵌套”单子。 我已经尝试实现自己的变压器: data CustomTransformer a = CustomTransformer class TransformerClass m a where lift

    5热度

    3回答

    假设我有两个单子变压器 T1 :: (* -> *) -> * -> * T2 :: (* -> *) -> * -> * 与实例 instance MonadTrans T1 instance MonadTrans T2 和一些 X :: (((* -> *) -> * -> *) -> ((* -> *) -> * -> *) -> * -> *) 如 newtype X t1

    0热度

    1回答

    我想使用monads在haskell中编写一个循环,但我很难理解这个概念。 有人能给我提供一个while循环的简单例子,而有些条件是满足IO操作的吗?我不想要一个抽象的例子,而是一个真正具体的例子。

    6热度

    1回答

    假设我有以下代码 do {x <- (Just 3); y <- (Just 5); return (x:y:[])} ,输出Just [3,5] 如何哈斯克尔知道产值应该在Maybe单子?我的意思是return可能输出[[3, 5]]。

    5热度

    2回答

    结果哈斯克尔玩,现在我试图创建一个像 keepValue :: (Monad m) => m a -> (a -> m b) -> m a 功能具有以下语义:它应该单子值适用于一个功能,它的回报第二个单子,并保持结果第一个单子,但第二个 的效果我Maybe单子的情况下,有一个工作功能: keepValueMaybe :: Maybe a -> (a -> Maybe b) -> Maybe a

    8热度

    2回答

    对环境共享加上确定性的规范“Monad的实例”如下(使用伪哈斯克尔,因为Haskell的Data.Set当然不是的,一元): eta :: a -> r -> {a} -- '{a}' means the type of a set of a's eta x = \r -> {x} bind :: (r -> {a}) -> (a -> r -> {b}) -> r -> {b} m `b

    4热度

    2回答

    我正在尝试编写下面的验证函数,以便验证在遇到第一个错误后停止。返回类型three与其他功能不同。我为了编译这个代码而使用哪个monad变换器? import scalaz._ import Scalaz._ import scala.concurrent.Future import scala.concurrent.ExecutionContext.Implicits.global d

    2热度

    1回答

    因此,我们的项目后端是一个Java 8 Springboot应用程序,springboot允许您轻松地完成一些操作。当然,请求验证: class ProjectRequestDto { @NotNull(message = "{NotNull.DotProjectRequest.id}") @NotEmpty(message = "{NotEmpty.DotProjectReq