在程序范围中包含其他文件

时间:2014-08-02 11:37:53

标签: haskell cabal leksah

我试图进入haskell世界的第一步,为此我选择使用leksah IDE。 但是,我不确定这是否真的具有特定的leksah,但猜测它可能更像是一个阴谋/构建问题。

现在我试图解决99 Haskell problems,为此我开了一个新工作区并创建了一个新包。 这使我基本上像以下目录结构:

dist/
  +--- (here be dragons... a lot of hopefully unrelated files)
scr/
  +--- Main.hs
  +--- 01_lists.hs   (<- now that's what I want)
99problems.cabal
Setup.lhs

我的Main.hs文件如下所示:

module Main ( main ) where
main = putStrLn (show (myLast [1,2,3]) )

归咎于我,Not in scope: myLast。 我可以通过将定义写在main = putStrLn ...的定义之上来解决此问题,但我想要的是将其拆分为不同的文件并将文件包含在我的范围内。

这是怎么做到的?

猜猜它与leksah正在使用的cabal有关,我必须以某种方式包含它,就像我在REPL中使用:load 01_lists.hs一样。 我已在Package -> Extra Files下的leksah中添加了该文件,但仅此一点没有成功。

我的环境是:

  • Fedora 20
  • Haskell-platform 2013.2.0.0即
    • leksah 0.12.1.3
    • cabal 1.16.0.2(Cabal 1.18中没有cabal repl命令,最有可能帮助我

我倾向于认为这是一个简单的配置问题。 有人愿意帮我借这个吗?

1 个答案:

答案 0 :(得分:5)

01_lists.hsEuler01.hs并以module Euler01开头。然后在Main.hs中,添加到顶部import Euler01