Relude 开源项目教程
项目介绍
Relude 是一个安全、高效、用户友好的轻量级 Haskell 标准库。它旨在替代默认的 Prelude,提供更安全的代码、更高的生产力和更好的性能。Relude 依赖于启动库(boot libraries),这使得构建时间更短,并且遵循 PVP(Package Versioning Policy)和向后兼容性。
项目快速启动
安装 Relude
首先,确保你已经安装了 Cabal 版本至少为 2.2。然后,在你的项目中添加 Relude 依赖:
cabal-version: 2.2
name: prelude-example
version: 0.0.0.0
library
exposed-modules: Example
build-depends: base >= 4.14 && < 4.17, relude ^>= 1.1.0.0
mixins: base hiding (Prelude), relude (Relude as Prelude)
default-language: Haskell2010
使用 Relude
在你的 Haskell 文件中,导入 Relude 模块:
import Relude
main :: IO ()
main = do
let foo = Foo True
print $ under not foo
应用案例和最佳实践
应用案例
Relude 可以用于各种 Haskell 应用程序,例如 CLI 工具和 Web 应用。以下是一个简单的 CLI 工具示例:
import Relude
main :: IO ()
main = do
putTextLn "Hello, Relude!"
最佳实践
- 避免部分函数:Relude 提供了安全的替代函数,例如
head
返回Maybe a
。 - 使用 HLint 规则:Relude 有特定的 HLint 规则,可以帮助你移除冗余导入或找到使用函数的提示。
- 利用类型级别特性:Relude 使用类型级别特性提供更好的错误消息,并禁止在
Set
和HashSet
上使用elem
和notElem
函数。
典型生态项目
相关项目
- Protolude:支持旧版本的 GHC,但 Relude 提供了更现代的特性和更好的性能。
- Dhall:用于生成 HLint 规则,帮助维护这些规则。
生态系统
Relude 是 Haskell 生态系统中的一个重要组成部分,它与其他库和工具(如 Stackage 和 NixOS)兼容,并提供了许多有用的功能和类型类,例如 Foldable1
和 StaticMap
。
通过使用 Relude,你可以提高代码的安全性、生产力和性能,同时享受更简洁和现代的 Haskell 编程体验。