初次听说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 ]
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)
qsort [x] = [x]
qsort (x:xs) = (filter (x <) xs) ++ [x] ++ (filter (x >=) xs)
这是我所见过的最短小的快速排序代码。
----==== Email: slofslb (GTD) qq.com 请将(GTD)换成@ ====----
版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
作者:申龙斌的程序人生
---- 魔方、桥牌、象棋、游戏人生...
---- BASIC、C++、JAVA、C#、Haskell、Objective-C、Open Inventor、程序人生...
---- GTD伴我实现人生目标
---- 区块链生存训练
---- 用欧拉计划学Rust编程
---- 申龙斌的读书笔记(2011-2019)
----