如何将Haskell的distributive包导入ghci REPL进行交互式使用?
在macOS的GHCi中使用distributive包并结合
:type探索功能 方法一:临时加载包(快速测试)
适合单次快速验证需求,无需创建项目:
- 先更新cabal的包索引,确保能获取到最新的distributive包信息:
cabal update - 直接启动带有distributive依赖的GHCi:
cabal repl --build-depends distributive - 在GHCi会话中导入模块,即可用
:type查看collect的类型:
你会看到对应的类型签名输出:import Data.Distributive :type collectcollect :: Distributive g => (a -> g b) -> g (a -> b)
方法二:创建规范项目(适合长期探索)
如果后续需要添加更多依赖或保存代码,用cabal项目管理更稳定:
- 创建一个极简的cabal可执行项目(全程默认配置):
cabal init --simple --exe -n - 进入生成的项目目录(默认项目名为
hello):cd hello - 打开项目的
.cabal配置文件,找到build-depends字段,添加distributive依赖,修改后示例如下:build-depends: base >=4.14 && <5, distributive >=0.4.4 && <0.5 - 启动项目专属的GHCi:
cabal repl - 同样导入模块并查看
collect的类型:import Data.Distributive :type collect
常见问题排查
- 若提示找不到包,可尝试指定具体版本,比如
--build-depends distributive==0.4.4 - 遇到依赖缓存冲突时,执行
cabal clean清理缓存后再重新启动GHCi
内容的提问来源于stack exchange,提问作者jacobsa
相关产品推荐
相关产品推荐

