回答
我通常把我的模块放在同一个目录树中,并在树的根目录下启动ghci
。然后模块可以相互导入,我可以交互地将:load
模块轻松地导入ghci
。
$ ghci
.... loading ....
Prelude> :load directory/subdirectory/mymodule.hs
如果你希望你的模块从几个不同的项目访问,我建议建立一个小集团包为他们和使用cabal install
安装。发布到hackage不是必需的 - cabal install
无参数会在当前目录中查找.cabal
文件并安装相应的包。
如果您希望您的模块可以从单个项目访问,那么在分层文件夹树中组织源代码的常见做法也适用于Haskell。让我给个例子:
Hello/World.hs
Foo/Bar.hs
Quux.hs
Hello.hs
Hello/World.hs
应该在头module Hello.World where
。主模块应该有module Main
,但实际的文件名可以是任何东西(例如Quux.hs
)。在Foo/Bar.hs
中,您可以使用import Hello.World
。当您在ghci
中加载Foo/Bar.hs
时,当前目录应该是您的树的根目录,否则它将找不到Hello.World。您可以将模块名称而不是文件名称传递给ghci:例如ghci Hello.World会工作。
下面是文档:
http://haskell.org/ghc/docs/latest/html/users_guide/separate-compilation.html
http://haskell.org/ghc/docs/latest/html/users_guide/packages.html
+1。 Cabal现在实际上非常容易使用;对于这个用例,它几乎是完全自动的('cabal init'为你生成一个'.cabal'文件,你只需要填写构建依赖关系) –
- 1. 我在哪里可以找到Haskell模块的完整列表?
- 2. 我在哪里可以保存NSUserDefaults
- 3. 我在哪里可以在Ubuntu上保存我的C代码
- 4. 我在哪里可以保存我的tfs扩展的设置
- 5. 我在哪里可以保存我的ruby(.rb)文件?
- 6. 我在哪里可以找到VS 2012的DNN6模块模板
- 7. 哪里可以保存模型 - Yii
- 8. 我在哪里可以找到Digital Ocean Ansible模块的ssh_key_ids?
- 9. JSON在哪里存在?我在哪里可以把它
- 10. 我在哪里可以保存小部件的设置?
- 11. 我在哪里可以存储受保护的URL?
- 12. 我在哪里可以从
- 13. 我在哪里可以保存在Java代码中使用
- 14. 我在哪里可以放置模块化逻辑?
- 15. 我在哪里可以找到_sre.py python内置模块?
- 16. 我在哪里可以找到python Zeitgeist编程模块?
- 17. 我可以在哪里最早加载GPIO模块?
- 18. 我在哪里可以找到dojo模块位置?
- 19. 我在哪里可以找到Haskell的完整圆括号?
- 20. 我在哪里可以让我的语言模块的移动应用程序?
- 21. 我在哪里可以保存Zend_Form文件?
- 22. 我在哪里可以阅读haskell“ - >”运算符?
- 23. 哪里可以找到模式模块
- 24. Outlook在哪里保存我的消息?
- 25. 我在哪里保存tomcat中的applet?
- 26. 哪里可以安全地保存我的重要文件?
- 27. 哪里可以保存我的笔记mediawiki?
- 28. 哪里可以保存我的C++库? (Ubuntu)
- 29. Wiki/Lua:我在哪里放置模块?
- 30. 我可以在哪里放置我的Javascript模式定义?
在云...其他恶意的玩笑> –