阅读http://blog.haskellformac.com/blog/running-command-line-programs:
这需要安装上一篇文章中概述的Haskell命令行工具。这些工具包括一个名为runhaskell的命令,它以“脚本模式”运行Haskell程序--也就是说,正在对其进行解释,而不是编译(例如,Python解释器运行Python脚本)。
为什么要提供一个在脚本模式下运行haskell的工具?
当对代码进行解释时,这是否意味着它在脚本模式下会运行得更慢?
发布于 2016-07-11 10:44:10
是的,它会运行得更慢,但取决于应用程序,这可能根本不重要。实际上,许多有趣的任务并不需要大量的计算,因此您甚至不会注意到,比如Java和Ruby之间的运行时差异,尽管后者的性能被认为要差得多。
对于这样快速运行的应用程序来说,更重要的是启动时间。对于解释语言,这通常是非常直接的,而重新编译脚本可能需要相当长的时间。因此,在实践中,口译确实可以比编译更快!
此外,仅仅因为脚本被解释并不意味着每一个计算都是。事实上,大多数关键的东西都是在库中定义的,这些库都是编译的,只有从解释的代码中调用--这就是Python或Matlab这样的语言在科学计算方面具有竞争力的唯一原因:计算密集型的例程实际上是用编译的C或Fortran编写的,而不是顶层语言本身!
Haskell为您提供了这两个世界的优点(编译语言的快速原始性能;解释语言的快速使用和简洁),但不需要实际使用两种不同的语言--您只需选择运行编译的部分和仅解释的部分!
(这并不是说这是Haskell的独特之处-事实上,几乎所有已编译语言都有解释器。只是,除了调试之外,运行解释过的代码通常并不常见。但是,Haskell非常适合编写脚本任务,这些任务通常是用Python或Bash编写的,但是没有人愿意为这些任务购买整个Java或C++项目。)
https://stackoverflow.com/questions/38304703
复制相似问题