小编Cad*_*yOG的帖子

无法匹配 Haskell 函数的预期类型

所以我对haskell很陌生,我们已经设置了一些课程来使用函数式编程创建算法。所以我尝试制作一个函数,它接受一个整数数组并将每个数字分成一个列表。但是,我不断收到相同的错误,即预期类型与实际类型不同,即使在对其进行了一些研究之后,我也不明白这意味着什么。我已经尝试制作一些会产生此错误的函数,所以有人可以指出我到底做错了什么,以及为什么这个错误在外行人的术语中不断发生?

module Cswk2 where

getCard :: Integer -> [Integer]
getCard n
      | n < 0 = []
      | otherwise = lst_numb : getCard pre_numb
       where
         (pre_numb, lst_numb) = n divMod 10
Run Code Online (Sandbox Code Playgroud)

haskell types functional-programming

6
推荐指数
1
解决办法
70
查看次数

如何从 Haskell Stack 构建编译可执行文件?

|-aseCswk2
  |-app
    |-Main.hs
  |-src
    |-Libs.hs
  |-test
    |-Spec.hs
  |-aseCswk2.cabal
  |-Setup.hs
  |-package.yaml
...
Run Code Online (Sandbox Code Playgroud)

所以我有一个 Haskell 项目,它使用 Stack 构建系统,并如上面的示例所示。如果我使用$ stack test,那么我的 Libs.hs 文件中的函数将使用 Spec.hs 文件中的案例进行测试。如果我使用$ stack build,那么我的文件会成功构建,并且我可以使用里面的功能$ stack ghci

但是,我想创建 Main.hs 文件的可执行文件,但不知道这是如何实现的。我尝试$ ghc Main.hs在应用程序目录中使用它进行编译,但收到错误消息“无法加载 Lib 的接口”,即使我已将其作为导入包含在内。我也尝试过$stack build aseCswk2:exe:aseCswk2-exe,但没有.o创建可运行的文件。

executable haskell compilation haskell-stack

5
推荐指数
1
解决办法
2489
查看次数