Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我第一次建立Haskell开发环境的经验是常见的还是一次性的?_Haskell_Haskell Stack_Haskell Ide Engine - Fatal编程技术网

我第一次建立Haskell开发环境的经验是常见的还是一次性的?

我第一次建立Haskell开发环境的经验是常见的还是一次性的?,haskell,haskell-stack,haskell-ide-engine,Haskell,Haskell Stack,Haskell Ide Engine,我决定从Haskell开始,然后遇到一个陌生的生态系统。我已经用简短和长篇的形式写下了我目前的结论(现在我意识到我的问题可能是暂时的,将来不会适用,并且意识到下面的文本可能不适合这样做) 我现在特别想知道的是 我所描述的设置对退伍军人有意义吗 为什么GHC 8.6.5是推荐版本,8.8.2有什么问题 短版: 如果这是您与Haskell的第一次接触,并且您希望安装Haskell(ghccup、ghc、cabal安装、stack)和由Visual Studio代码、Haskell语言服务器插件和

我决定从Haskell开始,然后遇到一个陌生的生态系统。我已经用简短和长篇的形式写下了我目前的结论(现在我意识到我的问题可能是暂时的,将来不会适用,并且意识到下面的文本可能不适合这样做)

我现在特别想知道的是

  • 我所描述的设置对退伍军人有意义吗
  • 为什么GHC 8.6.5是推荐版本,8.8.2有什么问题
短版

如果这是您与Haskell的第一次接触,并且您希望安装Haskell(ghccup、ghc、cabal安装、stack)和由Visual Studio代码、Haskell语言服务器插件和HIE组成的开发环境。 确保
根据()堆叠新的
,并且正在安装的HIE都已解析 与ghcup安装的GHC版本相同

长版本

嗨,哈斯凯勒

我正在分享我对哈斯克尔的尝试,希望能从一两次新手失误中拯救其他人。 像所有明智的人一样,我问过谷歌如何安装haskell, 这让我进入了下一页(我在macOS 10.13.6上)。 我已经按照建议下载了ghcup,该建议又安装了ghc 8.6.5和cabal安装3.0.0.0。 根据ghcup,两者都是推荐的版本。我能够
ghcup列表
ghcup列表-t all
,一切看起来都很好。
堆栈
是建议的下一个堆栈。 这个过程是直接进行的,在stack完成了它需要做的所有事情之后,我
stack--version
告诉我我已经完成了
版本2.1.3,Git版本0fa51b9925decd937e4a993ad90cb686f88fa282(7739提交)x86_64 hpack-0.31.2

堆栈文档的下一部分给我带来了麻烦。 特别是
stack new my project
对于未初始化的用户,将基于所谓的解析器设置一个新项目。 在这一点上,我不知道或不关心的是,默认情况下,它将使用15.2版本的解析器(我写这篇文章时的最新版本)来设置 项目“包括电池”的隔离环境(请纠正我的任何错误假设/术语)。 我可能不知道的是,解析器15.2“期望”找到ghc 8.8.2,如果它没有找到它,它会做明智的事情并安装它。 我直觉地理解了这个问题——这是在解决这个问题——然后我继续前进(这是在我发现之前)

转到IDE,google将我带到haskell语言服务器,它还没有准备好。其次是 haskell ide引擎,可以被视为haskell语言服务器整体的一部分。 由于天真和对目前为止的经验感到满意,我从源代码构建hie,因为我对它不感兴趣 在这一点上使用nix做任何事情,或者弄清楚visualstudio代码DevContainer是什么。 构建是成功的,到目前为止,我已经安装了HIE、ghcup、ghc、cabal安装、visual studio代码包Haskell语言服务器 我准备开始学习哈斯克尔。 除非他拒绝工作:/

出了什么问题

  • ghcup在我的机器上安装了ghc 8.6.5
  • 默认情况下,stack new my project使用最新的解析器15.2,该解析器安装了ghc 8.8.2(与项目隔离)
  • 通过查看ghcup安装的ghc(第8.6.5节),HIE自行构建(?) 结果是生成HIE所依据的版本与由
    stack new my project
    设置的版本不匹配。 一旦我更好地理解了涉及的部分,就很容易在谷歌上搜索解决方案,并迫使我彻底阅读文档。 这都是我的错,因为我没有更好地关注我正在阅读的文档。然而,我不想弄明白 生态系统中小而关键的部分的细微差别
我确实意识到整个情况完全是自己造成的,我可以在安装GHC和启动GHCI后立即开始学习语言。我想知道我是不是走错了方向,还是大多数人都是这样开始的

于2020年7月25日更新

Haskell语言服务器现在安装起来容易多了,看看这篇文章和文章末尾的视频

我所描述的设置对退伍军人有意义吗

haskell生态系统一开始可能看起来很奇怪(很可能是这样!),开始学习语言基础知识可能最好的选择是你最后的评论(例如,课程选择的评论)

我认为问题的关键在于大多数haskell工具都与独特的haskell编译器的特定版本相耦合,而且如果该工具必须解析、格式化或类型检查haskell源代码(如编辑器和IDE所需)

但是,作为haskell ide engine的合作者之一,我希望为初学者尽可能顺利地安装和使用该工具。安装可以使用stack和cabal来完成,而且它不是自动的

您必须执行
stack install.hs latest
以使用该工具支持的最新ghc版本(当前为
ghc-8.8.2
)安装hie。您还可以使用
stack install.hs hie-${version}
f.e
stack install.hs hie-8.6.5
安装特定版本

如果使用cabal安装hie,安装程序将在
$PATH
中查找ghc版本,并且
cabal hie安装最新版本
将安装找到的最新支持版本。也许是你利用阴谋集团安装了hie

您可以安装多个版本的hie,每次安装都会生成多个可执行文件:例如
hie
本身、
hie-8.6
hie-8.6.5
以及分析项目并选择更合适的
hie
版本的
hie包装程序,