海纳百川

登录 | 登录并检查站内短信 | 个人设置 网站首页 |  论坛首页 |  博客 |  搜索 |  收藏夹 |  帮助 |  团队  | 注册  | RSS
主题: 自由与自主
回复主题   printer-friendly view    海纳百川首页 -> 驴鸣镇
阅读上一个主题 :: 阅读下一个主题  
作者 自由与自主   
所跟贴 Haskell我前一阵子研究过,感觉这种语言运行效率极低的吧,跟C,java等根本不是一个level的。 -- 吴耐 - (234 Byte) 2011-11-12 周六, 上午7:58 (95 reads)
土一豆






加入时间: 2009/09/13
文章: 481

经验值: 16061


文章标题: 说Haskell运行效率极低是一种误解, (280 reads)      时间: 2011-11-13 周日, 下午9:14

作者:土一豆驴鸣镇 发贴, 来自 http://www.hjclub.org

Haskell和lisp同属于functional programming language,不过Haskell是pure functional的静态语言,lisp是non-pure的动态语言。prolog另属一类,所谓logical programming language。

论起效率来,现代的common lisp和scheme效率并不低,common lisp更高一些,比流行的动态语言象python, perl, ruby, js这些似乎效率都高上不少。Haskell作为
静态语言,而且是近30年来类型理论,语言研究的集大成者,效率只有更高。但lazy evaluation和一些过于先进的编译器特性,会让Haskell的效率表现比较古怪,习惯eager evaluation和imperial language的人基本是没法预测程序的运行效率的。

不过要说Haskell编写起来极快,我绝对是反对的,对我这样资质不佳的人来说,绝对绝对,经常经常,比便秘还憋得难受,尤其是进入Monad的迷宫之后。

各种语言的效率对比,可以参考一下这个网站:
http://shootout.alioth.debian.org/u32q/which-programming-languages-are-fastest.php
仅供参考

关于递归函数,其中的尾调用(tail recursion)是可以直接编译成跳转语句的,所有的主流FPL编译器都有实现,imperial这边嘛,就很少了,ruby可能会有吧。

作者:土一豆驴鸣镇 发贴, 来自 http://www.hjclub.org
返回顶端
阅读会员资料 土一豆离线  发送站内短信
    显示文章:     
    回复主题   printer-friendly view    海纳百川首页 -> 驴鸣镇 所有的时间均为 北京时间


     
    论坛转跳:   
    不能在本论坛发表新主题
    不能在本论坛回复主题
    不能在本论坛编辑自己的文章
    不能在本论坛删除自己的文章
    不能在本论坛发表投票
    不能在这个论坛添加附件
    可以在这个论坛下载文件


    based on phpbb, All rights reserved.
    [ Page generation time: 0.190698 seconds ] :: [ 23 queries excuted ] :: [ GZIP compression enabled ]