阅读http://blog.haskellformac.com/blog/running-command-line-programs:
这需要安装Haskell for Mac命令行工具 在前一篇文章中概述。这些工具包含一个名为的命令 runhaskell,它以“脚本模式”运行Haskell程序 - 即,它是 被解释,而不是编译(很像,比如Python 解释器运行Python脚本)。
为什么要提供一个在脚本模式下运行haskell的工具?
正在解释代码,这是否意味着它在脚本模式下会运行得更慢?
答案 0 :(得分:4)
是的,它会运行得更慢,但根据应用程序的不同,这可能无关紧要。许多有趣的任务实际上并不需要大量的计算,因此您甚至不会注意到Java和Ruby之间的运行时差异,尽管后者被认为具有更差的性能。
对于此类快速运行的应用程序,更重要的是启动时间。对于解释型语言,这通常非常直接,而重新编译脚本可能需要相当长的时间。因此,在实践中,解释确实可以更快地编译!
此外,仅仅因为解释脚本并不意味着每一次计算都是如此。事实上,大多数关键的东西通常都是在 编译的库中定义的,只能从解释的代码中调用 - 这就是为什么Python或Matlab等语言在科学计算中具有竞争力的唯一原因:计算密集型例程实际上是用编译的C或Fortran编写的,而不是顶级语言本身!
Haskell为您提供了两个世界的优势(编译语言的快速原始性能;快速使用和解释的快速使用和简洁),但不需要实际拥有两种不同的语言 - 您可以简单地选择要编译的部分哪个只是解释!
(这并不是说这是关于Haskell的一个独特的事情 - 实际上存在几乎所有编译语言的解释器。只是,除了调试之外,运行代码通常不常见。但是Haskell原来是即使对于通常用Python或Bash编写的脚本任务也是非常合适的,但没人会费心去购买整个Java或C ++项目。)