Supercompilation for Haskell

看了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的魅力。

 

你可能感兴趣的:(erlang,haskell)