Haskell是一种函数式编程语言,具有强大的静态类型,惰性求值,广泛的并行性和并发支持以及独特的抽象功能。
如果我有一个有趣的函数,例如: -- 例如,`SomeRecord`可以有超过2个字段, -- 但是 20 或 30 数据 SomeRecord a b = SomeRecord { f1 :: a -> b, f2 :: a -> b -> 布尔 } 有趣::
纯粹是为了体验Hackage下载,我尝试获取一个尽可能简单的包。 这个: 似乎具有最小的依赖性(仅在基础上)。 它已经很旧了(2016 年),但最近有一些
我目前正在通过用python编写monad库来自学函数式编程。我在类型提示方面遇到了麻烦。例如,Haskell 中有一个带有签名的函数 filterM...
我不太明白函数在使用应用函子时的行为方式。 这是一个例子: ghci> (&&) <$> 只是错误 <*> 未定义 *** 例外:Prelude.undefi...
假设我有一个如下列表: [没什么,只是1,没什么,只是2] 我想获得第一个Just(非错误)值;在这种情况下,它只是 1。我唯一能想到的是: FirstJust xs = 案例过滤器
GHCup 和 Cabal 在已安装软件包的版本方面存在混淆(系统方面和特定的 cabal 项目)
这是我在 $HOME 的终端中运行 ghcup tui 时看到的内容: ┌──────────────────────────────────GHCup────────────── ──────────────────┐ │ 工具版本标签...
liftM2 如何像 Haskell 中的 S' 组合器一样工作?
我正在观看 code_report(链接)的视频,其中他提到 liftM2 的工作原理就像组合逻辑中的 S' 组合器。在他的示例中,他计算了数组的最小/最大元素并取...
当我看到 Haskell 的向量时,它不是物理的线性代数向量,是吗? Java 中的向量(我记得)是一种可以动态添加的数组。但这不能用作科学载体,是......
接下来关于 monad 转换器的问题...... 在引入构造函数类之前 [M.P.Jones 1993],Haskell 类声明: 必须有一个参数; 该参数必须是友善的 Ty...
我正在尝试强制递归为我的项目无限循环。 这是我到目前为止的代码: putStr'::String -> IO () putStr' (a:as) = do putChar a 放置字符' ' ...
我正在测试本文中的一些想法。 我想派生 Term 类型的 Eq 实例: {-# 语言 DeriveFunctor #-} 数据树 a = Branch Int [a] | Leaf Int 推导 (Eq, Func...
我正在尝试使用 Haskell 抓取网页并将结果编译到一个对象中。 如果出于某种原因,我无法从页面中获取所有项目,我想停止尝试处理页面...
如果我们绑定两个解析器并且第二个解析器失败,字符串是否会被解析一次?
所以假设这是一个解析器: 数据解析器 a = MkParser (String -> Maybe (String, a)) runParser :: 解析器 a -> 字符串 -> 也许 a runParser (MkParser sf) inp = case sf inp of ...
好的,我有这个解析器和数据: 模块 SO 其中 导入数据.Char import Prelude 隐藏 (fmap, (>>=), (*>), (<*), pure) data Parser a = MkParser (String -> Maybe (String, a)) 数据...
我正在使用 Python 工作,并创建了一个示例来说明如何推广常用的 sumList 函数来对任意列表列表求和: 为了对 Python 中的任意数字列表求和,我们可以这样写: def sumLi...
我的代码是这样的: -- 我的解析器采用一个函数,该函数采用字符串并给出 -- 后缀和答案 数据解析器 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 #-} 模块身份...