haskell 相关问题

Haskell是一种函数式编程语言,具有强大的静态类型,惰性求值,广泛的并行性和并发支持以及独特的抽象功能。

GHC 什么时候会在内部改变不可变值?

我希望将 Haskell 用于包含不断变化的重状态的实时应用程序。 当然,状态是不可变的,因此在每个状态步骤中我都会重新创建一个稍微改变的新状态...

回答 3 投票 0

Haskell MongoDB 驱动:该库支持 srv 域名吗?

我正在使用 Haskell 的 MongoDB 驱动程序(https://github.com/mongodb-haskell/mongodb),但我无法让驱动程序连接到 DigitalOcean 上的数据库,因为连接字符串采用 srv 协议,s ...

回答 1 投票 0

haskell 中的惰性 IO:如何返回由某些阻塞 IO 生成的惰性列表?

getText = 做 <- getChar s <- getText return (c : s) main = do s <- getText putStr s What I expect to see is that the input line being echoed each time after I press '

回答 3 投票 0

如何对 lambda 抽象执行 beta 缩减?

在 Will Kurt 关于 Haskell 的书中,有一个关于如何使用 lambda 抽象在 Haskell 中覆盖变量 x 的示例(不要在家尝试!)。这是示例: (\x -> (\x -> (\x -&g...

回答 1 投票 0

如何仅以一种方式揭露强制行为?

考虑这个有点愚蠢的数据类型: 类型数据AllowPrimesOnly = PrimesOnly |所有数字 数据编号 (allowPrimesOnly ::AllowPrimesOnly) 其中 一 :: 数字 所有数字 两个 :: 数字

回答 1 投票 0

这是在 Haskell 中利用 Ghosts of Departed Proofs 的正确方法吗?

我正在尝试以下中介绍的方法: 马特·努南。 2018. 逝去证据的幽灵(功能性珍珠)。第 11 届 ACM SIGPLAN Haskell 国际研讨会论文集(Haskell

回答 1 投票 0

如果我不使用第一个扩展,为什么在使用 Safe 扩展时会收到有关 GeneralizedNewtypeDeriving 扩展的警告?

我启用了安全扩展,现在我收到此警告: :警告:[GHC-98887] -XGeneralizedNewtypeDeriving 在 Safe Haskell 中是不允许的;忽略-

回答 1 投票 0

如何在Hspec测试中使用QuickCheck?

我使用 cabal init 为我的 Haskell 项目构建了初始代码库 我有几个用 Hspec 编写的测试。 在 cabal 测试中,它会像预期一样编译并运行这些测试,并给出一条消息供 fai...

回答 2 投票 0

GHCi 未推断某些 IO 操作的实例

在 GHCi 中运行以下命令会在 stuff' 4 上引发错误,但不会在 stuff 4 上引发错误。为什么? 有办法解决吗?我想使用 MkStuff' 而不是 MkStuff。 GHCI> :{ MkStuff 类 s m |米 -> s

回答 1 投票 0

Fix 的 Böhm-Beraducci 编码

我的定点函子定义如下: newtype 修复 f = 使固定 { 取消修复:: f(固定 f) } 我想定义一个函数,它接受 Fix f 并给出其 Böhm-Beraducci enc...

回答 1 投票 0

如何让两个 Haskell 程序通过互联网相互通信?

标题中的问题相对简单,但我不知道答案有多复杂,也不知道问题本身是否由于某种原因不适定,所以下面是有关用例的更多详细信息...

回答 1 投票 0

Haskell 中的或模式

在 OCaml 中,我习惯于编写如下代码: 让结合 o1 o2 = 匹配 o1, o2 与 |有效、无效|无效、有效 -> 无效 | _ -> ... 我找不到写或的方法-

回答 3 投票 0

当不太严格的 Functor 约束就足够了时,为什么还要存在 Monad 类型类约束?

我正在查看StateT monad转换器的源代码 有两个函数 execStateT 和 evalStateT 在其定义中具有 Monad m 约束: evalStateT :: Monad m => St...

回答 1 投票 0

如何判断现在是夏季还是冬季?

我想知道某一天(套餐时间)是夏季还是冬季。 我对中欧特别感兴趣,那里夏天的时区是 CEST = GMT+2,冬天的时区是 CES...

回答 3 投票 0

为什么我的秒差距词法分析器似乎仅对整数空格敏感?

我有一个如下所示的解析器: 模块 Parser2 其中 导入文本.Parsec 导入 Text.Parsec.String (解析器) 导入 Text.Parsec.Language (emptyDef) 将合格的 Text.Parsec.Expr 导入为 Ex 小鬼...

回答 1 投票 0

写一个 Monad Transformer,真的需要这么多硬编码实例吗

我是 Monad Transformer 的长期用户,也是第一次 Monad Transformer 编写者......而且我觉得我做了一些不必要的事情。 我们正在开发一个具有多个数据库表的项目,并且很难...

回答 1 投票 0

如何使用 State monad 或 StateT monad 转换器来模拟 IO monad 来测试在基于 IO 的 Monadic 堆栈中运行的函数?

在测试中使用 State 作为 IO 的替代方案 采取这样一个简单的功能 富::IO() foo = putStrLn“再见” 这是不可测试的,因为它影响终端的状态,wh...

回答 1 投票 0

为什么Haskell不支持相互递归模块?

Haskell 支持相互递归的 let 绑定,这很棒。 Haskell 不支持相互递归模块,这有时很糟糕。我知道 GHC 有它的 .hs-boot 机制,但我...

回答 1 投票 0

在生产代码中找到了假 IO 类型类的实例,但在测试中未找到

我有很多基于 IO 的操作,最简单的操作之一如下: -- 循环.hs 模块循环where 导入System.Console.ANSI(设置光标位置) 类型 Pos = (Int, Int) setCursorPosition' :: Pos -&...

回答 1 投票 0

如何在 WAI/scotty 中记录整个 HTTP 请求?

我目前从 Network.Wai.Middleware.RequestLogger 运行中间件 logStdoutDev,但它只记录路径和 Accept 标头(可能还有其他标头)。我想看PO的尸体...

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.