io-monad相关内容
我有以下功能: get :: 字符 ->IO 字符得到 cs = 做char 我想从中得到一个 Chars 值,不是一个 IO 动作.我不不知道如何做到这一点,或者是否有可能. Chars 类型基本上只是一个容器: data Chars = Chars {curData :: [Int],curIndex :: 整数- 等等.} 细节不是那么重要,我只是想知道这个函数是否有办法返
..
我正在使用 BlazeClientBuilder[IO].resource 方法来获取 Client[IO].现在,我想模拟客户端进行单元测试,但不知道该怎么做.有没有一种很好的方式来嘲笑这个,我该怎么做? class ExternalCall(val resource: Resource[IO, Client[IO]], externalServiceUrl: Uri) {defretriev
..
我有以下代码 fastShuffle :: [a]->IO [a]fastShuffle a =prop_fastShuffle_correct :: [Int]->财产prop_fastShuffle_correct s =monadicIO(做sh(insertSort sh == insertSort s&&
..
我正在学习Haskell和IO monad.我想知道为什么这不会迫使程序输出"hi"和"bye": 秒a b = bmain = print((second $!((print"hi")>> =(\ r-> return())))“再见") 据我了解, $!运算符将强制对 second 的第一个参数求值,而>> = 运算符将需要运行 print"hi" ,以获取其值并将其传递给 \ r->r
..
为什么下面的代码段会产生错误parse error on input ‘putStrLn’? main = do line
..
代码: main = do putStrLn "4917 Microprocessor\nEnter the Machine Code to be run: " inp
..
我已经具有在Haskell的乒乓球游戏中移动2个桨的功能.我要更改,因此现在使用MVars. 我知道我需要将wHeld,sHeld,downHeld和upHeld更改为MVars,但是关于如何更改movePaddle以处理MVars的任何想法? 另外,当我声明将MVars举为MVar时,它在派生show时也会显示错误((Show MVar Bool的非实例) data PongG
..
我的Logger类型为* -> *,可以采用任何类型并将值记录在文件中.我正在尝试以单例方式实现此目的,以便我登录并保持相同的状态.我的代码看起来像 import Control.Applicative import Control.Monad import System.IO import Control.Monad.IO.Class instance Functor Logger wh
..
我试图理解为什么我用do-block编写的函数不能被重写以在列表上fmap一个类似的lambda表达式. 我有以下内容: -- This works test1 x = do let m = T.pack $ show x T.putStrLn m test1 1 生产 1 但是 -- This fails fmap (\x ->
..
在Haskell中print是纯函数吗?为什么或者为什么不?我认为不是,因为它并不总是返回与纯函数相同的值. 解决方案 类型IO Int的值实际上不是Int.它更像是一张纸,上面写着“嘿,Haskell运行时,请以这种方式产生一个Int值".这张纸是惰性的,即使运行时最终生成的Int是不同的,也保持不变. 您可以通过将纸张分配给main来将其发送到运行时.如果IO动作永远不会妨碍ma
..
以下是一些使用 IO Monad 的Scala猫代码: import java.util.concurrent.{ExecutorService, Executors} import cats.effect.IO import scala.concurrent.{ExecutionContext, ExecutionContextExecutor} import scala.util.c
..
我有一个繁重的副作用函数(认为是数据库调用),我想将其用作惰性值,这样它仅在首次使用时才被调用(如果从未使用过,则不会被调用). 我该如何使用ZIO? 如果我的程序如下所示,则该函数仅被调用一次(但甚至根本不使用结果): import scalaz.zio.IO import scalaz.zio.console._ object Main extends scalaz.zio
..
我有这个非常简单的功能 导入合格的Data.ByteString.Lazy为B getJson :: IO B.ByteString getJson = B.readFile jsonFile readJFile :: IO(也许响应) readJFile =解析>> =(\d - > 案例d 左错误 - >返回Nothing 右ps - >返回(只是ps))
..
我/我/我在两个地方对语言有类似的误解,涉及变量赋值在涉及IO monad的块中的工作方式。你能帮助我理解(1)它是否是同样的误解,(2)如何清除它(在答案中,也许特别是如果你有关于这个问题的最喜欢的参考)? 我发现我可以在所有行都成功执行操作,但当我尝试将其分成2以便可读时,则无法成功执行操作。 第一部分:将1行转换为2 为什么这有效? ipg :: IO() ipg
..
foobar :: IO(ParseResult [(String,String)]) code> ParseResult是这里定义的monad: https://hackage.haskell.org/package/haskell-src-exts-1.13。 5 / docs / Language-Haskell-Exts-Parser.html#t:ParseResul
..
我有一些目前使用ST monad进行评估的代码。因为 runST 方法产生一个纯粹的结果,所以我不喜欢把IO放在任何地方,并且表明这样的结果可以安全调用(与 unsafePerformIO )。然而,因为我的一些代码已经变得更长了,所以我想把调试打印语句放进去。 是否有任何类提供双重个性monad [或类型类机械],可以是ST或IO(取决于其类型或“isDebug”标志)?我记得SPJ在他的
..
Haskell中的可变向量有三个元素级的增变器: read :: PrimMonad m => MVector(PrimState m)a - > Int - > m a write :: PrimMonad m => MVector(PrimState m)a - > Int - > a - > m() swap :: PrimMonad m => MVector(Pri
..
在Hamlet中,如何在#{...} 中使用IO操作的结果? someIO :: IO字符串 ------------ ----- $带东西#{stuff} 不符合 没有实例(blaze-markup-0.6.0.0:Text .Blaze.ToMarkup (IO String)) 由于使用`toHtml'
..
作为Haskell的新手,我正在努力通过编写一个简单的命令式玩具语言的解释器来提高我的技能。 这个表达式之一语言是 input ,它从标准输入中读取一个整数。然而,当我将这个表达式的值赋给一个变量,然后再使用这个变量时,我看起来并不是我实际上存储了读取一个值的计算,而是读取值本身。这意味着例如声明 x =输入; y = x + x; 将导致解释器调用输入过程三次
..
我看过 algo.monads 和
..