编程中的monad是可组合的计算描述。 Monads是Haskell等函数式编程语言中的重要构造。
请考虑以下程序。 chars = [“”] ++ [“ A”] ++ [“ B”] ++(重复“ ABCD”)f :: Int-> [(Char,Int)] fn =(,)(字符! n)[1..3] g :: Int-> [[((Char,Int)]] g 1 =(...
更新:我注意到我的代码设计存在问题。我的代码的总体结构已发生很大变化,以至于对该问题的任何答案都或多或少与它的...... >>>
假设我有此示例代码:h = 2 add = \ xy->(x + y)addH =添加h main = return(fmap addH [1,2])运行它将得出[3,4]现在,假设h不是设置为“ 2”,而是设置为“ Just 2”。 ...
我最近决定开始使用monad转换,而不是堆叠我的monad,因为这似乎是正确的做法。无论如何,我并没有真正堆叠过很多单子。我得到(I ...
我正在编写一个haskell程序来执行一堆语句以修改数据记录。我想对每个语句的状态进行修改和测试,而无需用户干预。我有...
我有兴趣在我的JavaScript函数组合中尝试类似Haskell的IO monad。类似于Folktale的Task似乎与Haskell的IO类似,因为它很懒,因此...
Monad Parser-无法将预期的类型'[[(b,String)]]'与实际的类型'Parser b'
我正在使用G.Hutton的“在Haskell中编程”来研究Haskell。我正在关注Monadic Parser的ch.13。首先,我定义一个类型解析器:newtype Parser a = P(String-> [(a,String)])然后,解析...
我有模块:module Writer,在其中导入前奏隐藏(Monad,(>> =),return,(= > =):: ma->(a ...
以下代码:类MonadState(M:类型->类型)(S:类型):= MonadState_Build {monad_state:> Monad M;得到:M S;把:S-> M S; embed_fun {X} :( S-> ...
我正在尝试在TypeScript中实现Either monad。接口Either {flatMap (f:(value:TResult)=> Either ):Either ; match&...
我正在尝试在TypeScript中实现Either monad。接口Either {flatMap (f:(value:TResult)=> Either ):Either ; match&...
是否可以为每个monad转换器`t`写出类型为`Monad m => t Identity a-> t m a`的函数?
假设我们有以下类型类。 class MonadTrans t => MonadLower t其中更低的:: Monad m => t身份a-> t m a作为一个简单的例子,我们可以实现...
所以我正在学习Haskell并拥有我想运行的更广泛的程序,但是我设法缩小了为什么它对这个问题不起作用的方法:putSentence :: String-> IO()putSentence句子= ...
我想实现与parsec的try方法相同的方法。但是我没有使用解析转换器,而是使用持有状态的Parser对象:try :: Parser String-> Parser String try p = P $ ...
我正在尝试定义状态机家族,它们的状态有所不同。特别地,更“复杂”的状态机具有通过组合...
这是我必须使用的代码:infixl 9:@:-这是在表达式数据应用中使用的新定义的符号Expr = Lit Integer-文字| Var String-一个...
如果我有一个列表输入= [“ 1”,“-2”,“ 14”,“ 3”],长度为n,并且我想将其转换为一个Int列表,那么forM [0的返回值是多少。 。(n-1)] $ \ i->让t =读(input !!(i)):: ...
假设我有一个共纳D monad T的分布定律l:D T->整个共纳D上共纳D的TD。如何定义共纳D T?
我正在使用ReadP模块编写一个小型解析器。我有这个表达式:cmdExpr =字符串“ create”字符串“ add”字符串“另一个别名” ...我想抽象一下...
我正在尝试从Wikibooks / Haskell的CPS章中找出协程示例,但我不明白为什么runCoroutineT函数需要。 (