Haskell是一种函数式编程语言,具有强大的静态类型,惰性求值,广泛的并行性和并发支持以及独特的抽象功能。
我的代码是这样的: -- 我的解析器采用一个函数,该函数采用字符串并给出 -- 后缀和答案 数据解析器 a = MkParser (String -> Maybe (String, a)) unParser :: 解析器 -...
我刚刚在 WSL2 (Ubuntu) 中使用 GHCup 安装了 Haskell。但是,ghci 解释器存在问题。 当我启动 ghci 并按 Enter 时,解释器不会创建新行...
假设我有: 数据 X = X Int Char 任意 现在假设我想向 X 添加一个类型参数,如下所示: 数据版本 = 旧版本 |新版本 data X (phantomParam :: Version) = X Int Char 什么...
@pash 写道: Haskell 中确实不存在“未量化”类型签名之类的东西。 这是一个程序: {-# 语言 Haskell98、ScopedTypeVariables、InstanceSigs #-} 模块身份...
是否可以在 Template Haskell 中为函数生成注释?
在我们的项目中,我们有很多 TH 生成的函数。向它们添加通用注释是有意义的,以便它们在 Haddock/Hoogle 中可见。至少,类似“这已经是
在 Haskell 中,当函数无法处理数据类型的每个构造函数时,这意味着什么?
考虑 数据对 = 对(标头、生成器) |化合物对(标头,[对]) showBoundPart :: 边界 -> 配对 -> 生成器 showBoundPart(边界b)(对(标题,内容))= mc...
如何在 Haskell 中使用 Blaze 自定义 HTML 属性
我正在尝试在 Haskell 的 blaze-html 中从 Bootstrap 编写以下 HTML 元素。 我正在尝试在 Haskell 的 blaze-html 中从 Bootstrap 编写以下 HTML 元素。 <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> 我的问题是我不知道如何使用自定义属性data-bs-toggle等。我找不到这里任何组合器可以让我定义自定义属性名称。 import Text.Blaze.Html import Text.Blaze.Html.Renderer.Text import Text.Blaze.Html5 qualified as H import Text.Blaze.Html5.Attributes qualified as A H.button H.! A.class_ "navbar-toggler" H.! A.type_ "button" -- I need something like this ... H.! A.custom "data-bs-toggle" "collaps" 我找到了如何使用 blaze-from-html 工具来做到这一点 您可以使用 dataAttribute 组合器。 import Text.Blaze.Html import Text.Blaze.Html.Renderer.Text import Text.Blaze.Html5 qualified as H import Text.Blaze.Html5.Attributes qualified as A H.button H.! A.class_ "navbar-toggler" H.! A.type_ "button" H.! dataAttribute "bs-toggle" "collapse" H.! dataAttribute "bs-target" "#navbarSupportedContent"
为什么 GHC 的类型检查器接受这个 UndecidableInstance 技巧?
GHC 接受以下代码。 {-# 语言灵活实例 #-} {-# 语言 UndecidableInstances #-} 类 Blib b 其中 布利布::b 类 Blob b 其中 斑点::b 实例 Blib b => Blob b
我正在尝试使用 Data.Type.Equality 中的 :~: 在编译时确定类型相等性。我的期望是它的行为符合 Scala 确定类型相等的标准方式: 案例...
这是我的解析器,以及运行解析器的两个函数: 数据解析器 a = MkParser (String -> Maybe (String, a)) unParser :: 解析器 a -> String -> Maybe (String, a) 解解析器 (MkParser a) 我...
如何使用database.beam库在haskell中编写给定的sql查询,该库对jsonb类型的列进行过滤并使用子查询
给定一个名为 mytable 的表 表结构 柱子 类型 可空 ID uuid 不为空 细节 jsonb 其中一行的详细信息列中的示例有效负载 { X: [{ x1: 'a', ...
我刚刚尝试写作 阅读(显示 42) 在 ghci 中。它响应“***异常:Prelude.read:无解析”。 我的假设是它应该返回 42。我阅读的各种手册和教程表明......
我很好奇组合 Maybes 的不同方式。有一个小例子说明了我可以通过 do 实现什么(我认为使用 Maybe 是一个 monad 的事实),但是对于这个特定的例子我是
这是我的解析器 数据解析器 a = MkParser (String -> Maybe (String, a)) 这是一个解析器,用于解析特定谓词是否成立。 满足 :: (Char -> Bool) -> Parser Char -- 采取...
`type <nameOfType> = Typeclass` 可以编译,但 `type <nameOfType> = (Typeclass, Typeclass)` 不能编译
我一直在阅读有关使用 haskell 类型重命名现有类型的内容,据我所知,该类型仅用于重命名具体类型,例如 Int、Integer、Char、D...
我使用 cabal install timezone-series-0.1.5.1 安装了 timezone-series Haskell 模块。 然后我定义了一个名为 Main.hs 的模块,其开头为: 导入 Data.Time.LocalTime.TimeZone.Series -- 来自
Cabal 运行无法看到交互式 haskell 模式可以看到的包
我在使用 cabal 时遇到问题。我希望使用 hackage 中的 Data.Finite 包。 我运行 cabal install Finite-typelits-0.2.0.0 我相信它成功了。我现在看到目录 .ca...
在 Windows 上安装 SDL2 for Haskell 和堆栈
我正在尝试将SDL2与堆栈一起使用。我按照这些说明进行操作。 stack exec -- pacman -S mingw-w64-x86_64-pkg-config mingw-w64-x86_64-SDL2 运行顺利。但是当我尝试通过键入...来安装 SDL2 时
理解 Haskell 中括号的使用 - 依赖于先前解析器的解析器在使用括号时会出错
好吧,我正在尝试学习 Haskell。 这是我的解析器。 导入数据.Char 数据解析器 a = MkParser (String -> Maybe (String, a)) 这是一个解析器,它解析一个字符串一次,具体取决于它的内容