当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

Supercompilation for Haskell

发表于: 2012-02-14   作者:bookjovi   来源:转载   浏览次数:
摘要: 看了supercompilation for Haskell后对Haskell甚是期待,下面分别是Haskell和C的word counting程序: Haskell: main = print . length . words =<< getContents C: int main() { int i = 0, c, last_space = 1; whi

看了supercompilation for Haskell后对Haskell甚是期待,下面分别是Haskell和C的word counting程序:

Haskell:

main = print . length . words =<< getContents

C:

int main() {
    int i = 0, c, last_space = 1;
    while ((c = getchar()) != EOF) {
        int this_space = isspace(c);
        if (last_space && !this_space) i++;
            last_space = this_space;
    }
    printf("%i\n", i);
    return 0;
}
 

 

作者用supercumpilation ghc和gcc做了个比较,读个40M的文件,结果是:
Supero+GHC is 10% faster than C!

看过了haskell后再来看google的Go语言,感觉go从haskell上借鉴不少,如channel based concurrent,static linking, 类型推导。

haskell可以说是个很高深的语言,monads没有点数学功底的人不太容易理解,haskell在functional Programming方面比Erlang更原味一点( Haskell vs. Erlang),同时haskell公认的一点就是善于写compiler(parsing combinators)。本人则非常喜欢haskell的lazy(处理数学演算非常方便),pure(不用整天考虑side effect了),还有强大的type系统(typeclass)。
haskell无法取代主流语言C/Java,但是在某些复杂特殊问题的解决上,haskell或许就是几行代码的事,这就是haskell的魅力。

 

Supercompilation for Haskell

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
这几天做到PAT一道比较数据大小的题PAT1065,题目不难,应该说是一道送分题,就是开数组,然后模拟
原文: http://www.stephendiehl.com/llvm/ Adapted by Stephen Diehl ( @smdiehl ) This is an ope
《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为H
  从网上搜了一番关于haskell的文章,大部分都在国外网站上(不少BLOG站点在国内无法访问),国内研
很长一段时间没有来博客园了,也不是这段时间很忙。只是一下子不知道该做什么,整日除了电影、小说
这里 就是那本“书”了; 在线版的,周末看了1,2,3,4,5章,做个小记录吧,狠有意思; 这里准备记些个
这里 就是那本“书”了; 在线版的,周末看了1,2,3,4,5章,做个小记录吧,狠有意思; 这里准备记些个
早晨一来公司,就看到工位上一个大大的邮报,看地址是清华出版社寄过来的,我就知道是它了。拆开后
早晨一来公司,就看到工位上一个大大的邮报,看地址是清华出版社寄过来的,我就知道是它了。拆开后
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号