初次听说Haskell

  玩了近20年的编程,竟然不知道函数式编程(Function Programming),惭愧。无意中看到Haskell编程语言,为其精练性所叹服!一段程序就与像是一条条公式,以前受到太多的命令式编程(Imperative Programming)的教育,学习这东西必须转换一下编程思路。
  下面是一段快速排序算法的代码:

qsort [] = []
qsort (x:xs) = qsort smaller ++ [x] ++ qsort larger
    where
        smaller = [ a | a <- xs, a < x ]
        larger  = [ b | b <- xs, b >= x ]


利用标准库函数filter的写法是:

qsort [] = []
qsort [x] = [x]
qsort (x:xs) = (filter (x <) xs) ++ [x] ++ (filter (x >=) xs)


这是我所见过的最短小的快速排序代码。

posted @ 2008-01-21 07:38  申龙斌的程序人生  阅读(1020)  评论(0编辑  收藏  举报