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

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

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号