无法通过 Haskell 教程
Can't go through a Haskell tutorial
我是 Haskell 的新手 – 我只知道它的语法,但了解的不多,所以我认为获得更多信息的最佳方法是学习 Haskell 的一些教程维基。
我找到了这个:
https://wiki.haskell.org/How_to_write_a_Haskell_program
不幸的是,当我到达项目 (2.9) 时,我的结果与网站上显示的有所不同。当我输入 cabal install --enable-tests
时,我得到:
Resolving dependencies...
Configuring haq-0.1.0.0...
Building haq-0.1.0.0...
Preprocessing executable 'haq' for haq-0.1.0.0...
Linking dist/dist-sandbox-2a06ecba/build/haq/haq ...
Preprocessing test suite 'tests' for haq-0.1.0.0...
<command line>: cannot satisfy -package-id haq-0.1.0.0-inplace
(use -v for more information)
Failed to install haq-0.1.0.0
cabal: Error: some packages failed to install:
haq-0.1.0.0 failed during the building phase. The exception was:
ExitFailure 1
真的有两个问题:
如何解决这个问题并编译通过?
附加到我的包版本的这个 -inplace
来自哪里?我尝试将它添加到 cabal 文件中,但这也没有帮助。
如果需要,我很乐意 post 更多详细信息。我的代码与教程中的说明几乎相同。
编辑
这是我的 .cabal
文件:
name: haq
version: 0.1.0.0
description: Super cool mega lambdas
license: GPL
author: Alojzy Leszcz
build-type: Simple
cabal-version: >=1.10
executable haq
main-is: Haq.hs
build-depends: base >=4.8 && <4.9
default-language: Haskell2010
test-suite tests
ghc-options: -Wall
default-extensions: OverloadedStrings
type: exitcode-stdio-1.0
main-is: HSpecTests.hs
build-depends: base,
haq,
hspec >= 1.8
default-language: Haskell2010
build-depends
部分中的 haq
指的是库,但您的 .cabal 文件未指定如何构建库 - 即。它没有 library
部分。
您将在该维基页面的第 3.2 节中看到 library
部分的外观:(link)
好的 - 设法得出有效的配置。谢谢提示。
这是我的 cabal 文件:
-- Initial haq.cabal generated by cabal init. For further documentation,
-- see http://haskell.org/cabal/users-guide/
name: main
version: 0.1.0.0
license: GPL-2
license-file: LICENSE
author: Bogdan Baranski
build-type: Simple
cabal-version: >=1.10
library
build-depends: base >=4.8 && <4.9
exposed-modules: Main
default-language: Haskell2010
executable main
main-is: Main.hs
build-depends: base >=4.8 && <4.9
default-language: Haskell2010
test-suite tests
ghc-options: -Wall
default-extensions: OverloadedStrings
type: exitcode-stdio-1.0
main-is: HSpecTests.hs
build-depends: base,
main,
hspec >= 1.8
default-language: Haskell2010
此外,我不得不将文件重命名为 "Main.hs" 以使其与内部定义的模块一致(我注意到 Haskell 对这个约定非常敏感:一个模块 "Module" 必须在文件 "Module.hs").
中定义
我是 Haskell 的新手 – 我只知道它的语法,但了解的不多,所以我认为获得更多信息的最佳方法是学习 Haskell 的一些教程维基。
我找到了这个: https://wiki.haskell.org/How_to_write_a_Haskell_program
不幸的是,当我到达项目 (2.9) 时,我的结果与网站上显示的有所不同。当我输入 cabal install --enable-tests
时,我得到:
Resolving dependencies...
Configuring haq-0.1.0.0...
Building haq-0.1.0.0...
Preprocessing executable 'haq' for haq-0.1.0.0...
Linking dist/dist-sandbox-2a06ecba/build/haq/haq ...
Preprocessing test suite 'tests' for haq-0.1.0.0...
<command line>: cannot satisfy -package-id haq-0.1.0.0-inplace
(use -v for more information)
Failed to install haq-0.1.0.0
cabal: Error: some packages failed to install:
haq-0.1.0.0 failed during the building phase. The exception was:
ExitFailure 1
真的有两个问题:
如何解决这个问题并编译通过?
附加到我的包版本的这个
-inplace
来自哪里?我尝试将它添加到 cabal 文件中,但这也没有帮助。
如果需要,我很乐意 post 更多详细信息。我的代码与教程中的说明几乎相同。
编辑
这是我的 .cabal
文件:
name: haq
version: 0.1.0.0
description: Super cool mega lambdas
license: GPL
author: Alojzy Leszcz
build-type: Simple
cabal-version: >=1.10
executable haq
main-is: Haq.hs
build-depends: base >=4.8 && <4.9
default-language: Haskell2010
test-suite tests
ghc-options: -Wall
default-extensions: OverloadedStrings
type: exitcode-stdio-1.0
main-is: HSpecTests.hs
build-depends: base,
haq,
hspec >= 1.8
default-language: Haskell2010
build-depends
部分中的 haq
指的是库,但您的 .cabal 文件未指定如何构建库 - 即。它没有 library
部分。
您将在该维基页面的第 3.2 节中看到 library
部分的外观:(link)
好的 - 设法得出有效的配置。谢谢提示。
这是我的 cabal 文件:
-- Initial haq.cabal generated by cabal init. For further documentation,
-- see http://haskell.org/cabal/users-guide/
name: main
version: 0.1.0.0
license: GPL-2
license-file: LICENSE
author: Bogdan Baranski
build-type: Simple
cabal-version: >=1.10
library
build-depends: base >=4.8 && <4.9
exposed-modules: Main
default-language: Haskell2010
executable main
main-is: Main.hs
build-depends: base >=4.8 && <4.9
default-language: Haskell2010
test-suite tests
ghc-options: -Wall
default-extensions: OverloadedStrings
type: exitcode-stdio-1.0
main-is: HSpecTests.hs
build-depends: base,
main,
hspec >= 1.8
default-language: Haskell2010
此外,我不得不将文件重命名为 "Main.hs" 以使其与内部定义的模块一致(我注意到 Haskell 对这个约定非常敏感:一个模块 "Module" 必须在文件 "Module.hs").
中定义