haskell 相关问题

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

如何使用 Haskell 中的 Bounded 类型类来定义具有浮点范围的类型?

我预计以下代码会因违反 minBound 和 maxBound 而失败并出现类型错误。但是,正如您所看到的,它在没有标记错误的情况下完成了。 {-# OPTIONS_GHC -

回答 1 投票 0

如何使用镜头改变多态记录的类型?

在下面的代码片段中,我如何编写 toRecordWrite 函数,以便它可以与具有类似类型级别机制的任何 DbRecord 一起使用,例如。 UserPoly id 创建于更新于电子邮件用户名...

回答 1 投票 0

Haskell 中 `div` 的成本是多少?

我正在尝试计算函数 izq 的成本,其中我在其中使用函数 div: izq n |偶数 (n - 1) = ((n - 1) `div` 2) |否则 = (((n - 1) `div` 2) + 1) 所以izq的作品...

回答 1 投票 0

如何阻止 LunarVim Mason 自动安装语言服务器?

我正在 Nix 环境中使用 LunarVim 来对 Haskell 进行编程。该环境有一个自己的 haskell 语言服务器,当我通过 LunarVim 打开文件时,它会立即启动。问题是之后...

回答 1 投票 0

Haskell 中“自动举升”是如何实现的?

我是 Haskell 新手,正在学习 Monad Transformer。我发现在 monad 堆栈中的内部 monad 上操作时可以省略 lift。例如: 类型 Foo = ReaderT 字符串 (WriterT 字符串

回答 1 投票 0

制作 Haskell 函数来处理无限列表

我想知道如何将函数转为使用无限列表? 例如,我有一个恢复列表列表的函数。 innerReverse [[1,2,3]] 将返回 [[3,2,1]]。然而,当我...

回答 2 投票 0

这段代码是“惯用的”还是一般良好的haskell编程风格?

导入系统.随机 主要::IO() 主要=做 putStrLn "输入猜谜游戏范围" putStrLn "输入下限范围:" l范围 <- getLine putStrLn "Enter hig...

回答 1 投票 0

实现Haskell减半功能

使用库函数,定义一个函数 halves :: [a] -> ([a], [a]) 将偶数长度的列表分成两半。例如: > 将 [1, 2, 3, 4, 5, 6] 减半 ([1,2,3],[4,5,6]) 到目前为止...

回答 3 投票 0

如何编写一个可以在“obj”以及“Maybe obj”上调用“getField @k”的 Haskell 函数

我正在尝试编写 HTML 表单助手,我希望调用站点支持以下两种用例: {-# 语言AllowAmbigouslyTypes、DataKinds、OverloadedStrings #-} 导入数据.Proxy

回答 1 投票 0

yesod Web 服务器的最小尺寸 docker

我在我的开源安全容器扫描仪中成功使用了 yesod。目前,我使用多个服务(都运行 yesod),速度非常快,但每个 docker 镜像与其他镜像相比都很大......

回答 1 投票 0

Haskell 中的素因数

我是 Haskell 新手。 如何生成包含下一个整数的质因数的列表列表? 目前,我只知道如何生成素数: primes = 地图头 $ iterate (\(x:xs) ->...

回答 9 投票 0

如何使用 Haskell FFI 传递不规则数组

我有一个 C 函数,看起来像这样: /** * @n 数据的外部维度 * @lengths 每“行”数据的长度 * @data 数据本身 */ 双 foo(int...

回答 1 投票 0

当模式匹配函数列表时,没有 (Eq ([a] -> [a])) 的实例

考虑以下代码: 步骤 :: [[a] -> [a]] -> [[a]] -> [[a]] 步骤 (f:fs) xss | (fs == []) = yss |否则 = 步骤 fs yss 其中 yss = 映射 f xss 它抛出以下错误:...

回答 3 投票 0

如何使用 parsec 在 Haskell 中解析 Python 风格的链接运算符?

在我目前正在进行的项目中,我以秒差距构建表达式解析器。代码是这样的: opTable :: [[运算符解析器表达式]] 操作表 = [ ——…… [ 中缀 L $

回答 1 投票 0

Haskell 函数的适当定义方程

任务是为以下函数给出适当的定义方程: 咖喱 :: ((a, b) → c) → a → b → c uncurry :: (a → b → c) → (a, b) → c curry 采用一个函数和两种类型 (a,b)...

回答 1 投票 0

使用 gi-gtk 创建简单窗口时出现严重错误

我正在使用 Haskell 的 gi-gtk (3.0.39) 模块将程序移植到 gtk3 (3.24.28),但是当我启动程序时会附加一个严重错误: (进程:13364):Gtk-CRITICAL **:09:07:59.826:

回答 1 投票 0

为什么 Haskell 函数尾部包含整个列表?

介绍和背景 在 Haskell 中,我们有函数 tail 提供列表的后缀。 例如: 尾部 [1,2,3] 给出 [2, 3] 函数 tails 将给出所有后缀: 尾巴...

回答 1 投票 0

如何使用 gi-gtk 和 GTK3 捕获 eventBox 中的事件

我想将用gtk2hs(Gtk2)编写的程序移植到gi-gtk(Gtk3),但我不明白如何捕获点击,滚动和其他事件。 在我之前的代码中,我创建了一个事件框并捕获了...

回答 1 投票 0

Haskell,实现 Monoids。什么是半群以及为什么它表现得如此奇怪?

我想实现一个名为 ComplexNumber 的自定义数据类型,如下所示: 数据 复数 a = C (a, a) 现在我想实现 Monoid 变量并定义二进制空元素和映射...

回答 2 投票 0

你将如何(重新)在 Haskell 中实现迭代?

迭代 :: (a -> a) -> a -> [a] (您可能知道)迭代是一个接受函数和起始值的函数。然后它将函数应用到起始值,然后应用......

回答 3 投票 0

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