You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在cabal repl中加载含隐藏包依赖的Cabal脚本?

如何在cabal repl中加载带内联依赖的Cabal脚本

问题场景

我有一个包含内联Cabal依赖配置的Haskell脚本,通过cabal run script.hs可以正常执行,但在cabal repl中加载时遇到依赖缺失问题:

脚本代码:

#!/usr/bin/env cabal
{- cabal:
build-depends: base
            , split
-}

import Data.List.Split (splitOn)

main :: IO ()
main = do
  let orders = splitOn "x" "axbxc"
  putStrLn $ head orders

直接启动cabal repl后执行:load script.hs,会报错提示无法加载隐藏包split-0.2.4;尝试:load *script.hs或cabal repl script.hs也无法解决问题。

解决方案

Cabal的内联脚本配置({- cabal: ... -})仅被cabal run解析,cabal repl默认不会读取这部分配置,因此需要显式指定依赖:

方法1:先启动带依赖的repl再加载脚本

执行以下命令启动repl,显式声明依赖:

cabal repl --build-depends split

启动完成后,在repl中执行:load script.hs即可正常加载脚本。

方法2:一次性加载脚本并指定依赖

直接用以下命令,启动repl的同时加载脚本并注入依赖:

cabal repl --build-depends split script.hs

两种方法都不需要新增任何配置文件,也无需系统级安装split包,完全满足无副作用的需求。

内容的提问来源于stack exchange,提问作者peer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 06:23:25