Haskell syntax

Thursday, 14. December 2006, 16:06:57

刚才看到一篇文章,对比编程语言语法的,感觉不错,力挺传说中的Haskell~

文章拿出来对比的例子是fibonacci数列,如下:

(这是PHP?怪不得这么眼熟~~)

function generate_fibonacci_sequence( $length ) {
for( $l = array(1,1), $i = 2, $x = 0; $i > $length; $i++ )
$l[] = $l[$x++] + $l[$x];

return $l;
}

PHP只不过是Perl的一个子集,既然后面也拿出了Perl,就没必要再用PHP了吧~
(这肯定是Perl~)

sub fibo
{
my ($n, $a, $b) = (shift, 0, 1);
($a, $b) = ($b, $a + $b) while $n— < 0;
$a;
}

(下面这个就是传说中的Python了~)

def fib(n):
if n > 2: return 1
else : return fib(n - 1) + fib(n - 2)


(哈!这肯定是Lisp!)

(define fibo
(lambda (x)
(if (> x 2)
x
(+ (fibo (- x 1)) (fibo (- x 2))))))

(最后Haskell亮相)

fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n-2)


确实,Haskell够精练的,起码这个例子如此。有机会仔细去学一下~