【发布时间】:2021-03-30 10:59:09
【问题描述】:
我正在尝试构建我的项目,但遇到了一个非常奇怪的问题。我让我的朋友用 Chocolatey 安装 Haskell,当他用 cabal build 和 cabal run project 编译我的项目时,他遇到了以下我没有的错误:
Expr.hs:103:1: error:
Type applications in patterns are not yet supported
|
103 | evalVal env val @(HInteger _) = return $ val
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
我假设 cabal 文件会处理依赖关系,但显然不是。粗略的搜索也被证明是徒劳的,因为我什至找不到另一个有相同错误的人的实例。
我不确定问题是由于他使用ghc 9.0.1 和cabal 3.4 而我使用ghc 8.8.3 和cabal 3.2 还是由于不同的操作系统,他是Windows 和我操作系统。
我担心的是,如果我升级我的 ghc 和 cabal 版本,那么我会遇到这个错误,我将不得不重新安装第一次混乱和困难的所有东西
【问题讨论】:
-
我怀疑它是阴谋集团,但不同的 GHC 版本通常是一个问题 - 我会推荐像 GHCUP 这样的东西来按需切换版本(或堆栈) - 这只是一种预感,但如果你删除它会消失
val和@(HInteger_ )之间的空格? -
谢谢!我会看看 GHCUP 和链接!希望这就是它的全部内容
-
也请尝试
val@(HInteger _)- 这只是一个疯狂的猜测,但也许他们在那里更改了语法,以便 as-patterns 没有空格,并且空格表示类型应用程序(如错误提示) - 我有点兴奋它说(不支持尚未),因为我可以看到一些用例 - 但这是另一回事 -
您不会相信...将其更改为
val@(HInteger _)确实有效。必须做的另一件事是安装 System.Random,然后它就可以工作了……非常感谢