在 Archlinux 上设置 Haskell 的建议方法是什么?

What is the suggested way of setting up Haskell on Archlinux?

长话短说,我想要一些关于让 Haskell 在 Archlinux 上工作的(最佳)方式的指导。

通过 work 我的意思是,就 ghci 命令行工具而言,安装我没有的软件包 - 例如 vector-space, which 到我的一个问题涉及 - 以及 Haskell 固执的学习者可能需要的任何其他事情。

Archlinux wikipage on Haskell lists three (alternative?) packages for making Haskell work on the system, namely ghc, cabal-install, and stack. I have the first and the third installed on my system, but I think I must have installed the latter later (unless it's a dependency to ghc) while tampering around (probably in relation to )。此外,我安装了大量 haskell-* 包(为什么?谁知道呢?作为一个学习者,我一定来过很多次 呃,让我们试试这个!).

Arch Linux's choice of providing dynamically linked libraries in their packages tends to get in the way if you are looking to develop Haskell code. As an Arch user myself, my default advice would be to not use Arch's Haskell packages at all, and instead to install whatever you need through ghcup or Stack,从各自项目页面中的指南开始。

你基本上就在那里。请尝试以下操作:

  • ghci:如果你得到 Haskell REPL 那么它就可以工作了。

  • stack ghci:您应该再次获得 Haskell REPL。 GHC 有很多版本,stack 与库一起管理这些版本。每当您使用新版本的 GHC stack 都会下载它并为您创建本地安装。

stack 独立于您的 Linux 包管理器。问题是你的发行版将只有 Haskell 它集成的任何应用程序实际需要的库,一旦你走出这些,你就会陷入依赖地狱,没有任何支持。所以我建议您避免使用发行版 Haskell 软件包。 stack 应有尽有。

如果您从 Linux 包管理器安装了 stack,那么您可能想要卸载它并使用个人副本(即在您的 ~/.local 目录中)。然后你可以随时说 stack update 来检查你是否有最新版本。

完成 stack 后,请说 stack new my-project simple 创建一个项目。然后进入项目文件夹并开始编辑。如果你真的愿意,你可以只使用一个 .hs 文件和 GHC,但这很痛苦;使用 stack,你会做得更好,即使你只是在胡闹。

您还需要一个编辑器。语法高亮等基本功能在几乎所有内容中都可用,但一旦你通过了河内塔,你就会想要更好的东西。我在引擎盖下使用带有 ide-haskell-ghcide. This uses the Haskell Language Server 的 Atom,因此您也需要安装它。我知道很多其他编辑器都支持 HLS,但我没有使用它们的经验。