问题标签 [hackage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - 模块是否会随着时间在 Hackage 上稳定下来?
Hackage
对于新手来说,许多模块都被标记为experimental
,甚至是像Data.Bool这样基本的模块,这可能会让他们感到惊讶。
模块是否有任何过程或期望成为stable
特别是base
?我们应该注意这个标签吗?
haskell - 是否存在有用的 Haskell HashMap/HashTable/Dictionary 库?
我正在寻找一个无 monad、常量访问查询O(1)关联数组。
考虑假设类型:
我想构建一个不可变的结构一次:
我想随后以恒定时间访问重复查询它::
似乎有两个候选库不足:
unordered-containers
unordered-containers
包含 type 的严格和惰性变体HashMap
。两个HashMap
s 都有函数记录的O(log n)查询lookup
。这个查询访问时间似乎是由于HashMap
类型的构造,它们具有允许O(log n) insert
功能的内部树结构。对于许多用例来说,一个可以理解的设计权衡,但由于我不需要可变的HashMap
这种权衡阻碍了我的用例。
hashtables
hashtables
包含一个HashTable
类型类和三个具有不同表构造策略的实例类型。这个库的类型类定义了一个常数时间O(1) lookup
函数定义,但它永远嵌入在ST
monad 中。没有办法“冻结”有状态的HashTable
实现并拥有一个lookup
没有嵌入有状态单子的函数。当整个计算包装在一个状态单子中时,库的类型类接口设计得很好,但这种设计不适合我的用例。
是否存在其他一些定义类型和函数的库,这些库可以构造不可变的常量访问查询O(1)关联数组,该数组未嵌入有状态的单子中?
是否存在某种方法来包装或修改这些现有的基于散列的库以生成不嵌入在有状态单子中的不可变常量访问查询O(1)关联数组?
linux - Cabal 无法在 Linux 上安装 network-2.6.3.1
简而言之,我对 Haskell 世界相当陌生,并且在安装依赖于 network-2.6.3.1 的包时遇到问题。
自行安装网络会产生类似的结果。是否有任何常见的怀疑或推荐的错误安装步骤?我已经成功安装了其他软件包,ghcid,ghc-mod 等。
更新
haskell - 我应该使用堆栈来构建和上传到 Hackage 吗?
随着时间的推移,我开发了一个凌乱的系统级 Haskell 安装,我不确定如何完全清理它。但在大多数情况下,这并不是什么大问题,因为我只是使用堆栈来管理每个项目的 Haskell 配置。然而,由于我的项目需求与我的系统 Haskell 设置不同,我想知道为 Hackage 构建和上传包的最佳方法是什么。
具体来说(1)我应该使用
而不是简单地
(2) 是否有任何理由安装 cabal 的项目版本(带有stack build cabal
?)
还是有一些更好的基于堆栈的方法来构建和分发到不涉及cabal
直接调用的 Hackage?
haskell - Hackage 使用哪种 Markdown 方言来呈现 README?
Hackage 能够显示 Markdown README 已经有一段时间了。
但是,例如在Hackage 页面hpack
上可以看到,Hackage 似乎不支持与 GitHub 相同的表语法。
降价:
在 GitHub 上渲染:
在 Hackage 上渲染:
所以,我想知道:
- Hackage 支持哪种 Markdown 方言?
- 该方言中的表格是否有语法?
- GitHub 和 Hackage 都支持 Markdown 子集中的表格语法吗?
git - 管理 hackage 版本
目前,当我想更新我的一个 hackage 包时,我会经历这个过程。
- 将更改推送到 github
- 等待 travis-ci 在更改上运行,以确保我没有收到任何构建错误。
- 上传到黑客
- 在 git 中标记发布。
当然,如果上一步成功,我只想执行这些步骤中的每一个。
我想其他人也有类似的工作流程,有什么东西可以完成所有这些步骤吗?我可能可以在脚本中执行 (1)、(3) 和 (4),尽管 (2) 我不太确定(即检查 travis-ci 的结果),但这似乎很常见问题我想知道是否有人已经解决了它,所以我不重新发明轮子。
haskell - `Either`,左边有一个半群
像这样的东西是否已经存在或者我应该为 Hackage 打包它(我发现它对收集错误很有用):
值得注意的是Applicative
和的Monad
实例(,)
与此非常相似,但它是用于收集“警告”的产品类型。
如果我为 Hackage 打包它,我可能会添加更多实例,但如果有人已经这样做了,我不想重新发明轮子。
haskell - 如何创建要上传到 Hackage 的包?
如何生成适当的包文件?
hackage 上传页面有一个链接到:https ://www.haskell.org/cabal/users-guide/installing-packages.html#setup-sdist但在阅读之后我仍然不确定。
我试过了:
也:
haskell - Hackage包搜索中新的“DL”排名是如何计算的?
到目前为止,Hackage 包搜索不仅像以前那样提供所有匹配项的列表,而且允许以各种方式对它们进行排序。值得注意的是,现在可以按rating排序,即用户对包的满意度(如果人们真的开始给包打分……这已经有一段时间了,但几乎没有投票),还有一些“DL”标准。我首先假设这以某种方式计算了反向依赖关系,即描述了有多少其他包依赖于这个,但情况似乎并非如此,因为base
它的值只有 1692,而例如base64-bytestring
有高达 7384。
所以如果不是这样,这个数字告诉我什么?