使用"stack ghc",如何使用 -fglasgow-exts 编译 Haskell 程序?



我正在遵循48小时内编写自己的方案,此时必须使用标志-fglasgow-exts编译到程序。我使用的是MacBook和Stack,但当我尝试用stack ghc scheme.hs -fglasgow-extsstack ghc -fglasgow-exts scheme.hs运行它时,我无法让它运行。我试着使用他们使用的命令ghc -package parsec -o scheme,但也一无所获。

您通过Stack使用GHC,因此如果您想将命令行标志(如-fglasgow-exts(传递给GHC,则需要在--之后进行,这样Stack就不会吞噬这些标志:

stack ghc -- -fglasgow-exts scheme.hs

哇,我已经有5年没有在命令行上看到那个标志了。更惯用的做法是放

{-# OPTIONS_GHC -fglasgow-exts #-}

在文件的顶部,但即使这样也相当过时。如今的礼仪似乎是单独启用扩展

{-# LANGUAGE ScopedTypeVariables, RankNTypes #-}

或者你需要的任何东西。您通常可以通过忽略它们来找出您需要的扩展,ghc会在其错误消息中告诉您。如果你不知道它是什么,这是一个很好的机会去阅读它,我个人觉得这很令人兴奋。

相关内容

  • 没有找到相关文章

最新更新