Haskell调用函数onload
各位程序员大家早上好!
我正在使用 haskell 开发一个项目,我想知道如何运行 haskell 函数,而不必在 ghci 上输入两行,例如,
ghci filename.hs function
这只能通过以下方式完成:
ghci filename.hs
function
???? 我正在寻找类似 C 中的 main () 的东西,它在编译程序时自动运行 有这样的事吗? 我一直在检查 ghci 上的 -e 选项,但我似乎无法让它工作!
非常感谢!
干杯!
Good morning fellow programmers!
i'm working on a project using haskell, and i've wanted to know how to run a haskell function without having to type two lines on ghci, for example
ghci filename.hs function
This can only be done doing:
ghci filename.hs
function
????
I'm looking for something like the main () in C,which runs automatically when you compile the program
Is there something like that?
I've been checking the -e option on ghci, but i cant seem to get it to work!
Thank you very much!
Cheers!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可能正在寻找
ghc -e
:另外,请注意,您还可以在 ghci 中使用
:reload
命令。在 ghci 中加载文件,编辑,输入:reload
并再次测试。另外,如果这看起来太乏味,您还可以定义一个 ghci 宏,它允许您同时重新加载和测试您的函数:如果您想要构建真正的程序而不是快速测试
你的功能,那么你最好阅读其他关于写作的答案
主要
功能。You're probably looking for
ghc -e
instead:Also, note that you can also use the
:reload
command in ghci. Load the file in ghci, edit, type:reload
and test again. Also, if this seems too tedious, you can also define a ghci macro which allows you to reload and test your function at the same time:If you're looking to build real programs instead of quickly testing
your functions, then you'd better read the other answers on writing
main
functions.我假设
function
的类型为IO ()
。然后你可以让main = function
,并从命令行使用例如runhaskell modulename
。与 C 中一样,main
是一个特殊函数。澄清一下,以防万一:如果您的
函数
是纯函数,即其类型不涉及IO
,则您无法真正“运行它”。我想这样说是一种简化,但本质上 GHCi 所做的是调用打印函数
。如果您想模仿这一点,可以使用main = print function
之类的东西并使用runhaskell
。这假设function
的类型是Show
的实例。I assume
function
has the typeIO ()
. Then you can just letmain = function
, and use for examplerunhaskell modulename
from the command line. As in C,main
is a special function.To clarify a bit, just in case: If your
function
is a pure one, i.e. one whose type does not invovleIO
, you can't really "run it". I guess it's a simplification to say this, but essentially what GHCi does is to callprint function
. If you want to mimic this, you can use something likemain = print function
and userunhaskell
. This assumesfunction
's type is an instance ofShow
.