Haskell 学习笔记-05:为什么函数式编程流行不起来?

今天有些想入非非了,随便看几个这几天写过的算法:

求列表中的最小元素:

 min' ::Ord(a)=> [a] -> a
 min' [] = error "List is empty!"
 min' (x:[]) = x
 min' (x:xs) = if x < min' xs then x else min' xs

快速排序算法:

quicksort :: (Ord a) => [a] -> [a]
quicksort [] = [] 
quicksort (x:xs) =     
    let 
        smallerOrEqual = [a | a <- xs, a <= x]
        larger = [a|a <- xs, a > x]     
    in 
        quicksort smallerOrEqual ++ [x] ++ quicksort larger

用传统程序设计语言,很难如此简洁清晰地表达函数计算思路。给我的感觉是,从逻辑的简洁性上看,Haskell 简直绝了!可以想象,函数式编程语言编写这类算法,基本上都有超凡脱俗的表现。今天我又忽然想起这个沉重的话题,为什么函数式编程流行不起来呢?

我觉得欣赏函数式编程之美,必须具备相当的数学素养,而大部分程序员,敲代码只是养家糊口的一门技艺,大家更关心的是开发效率,对于那种大道至简的美学毫无兴趣。就像当今诗词歌赋无法为广大吃瓜群众所接受一样。函数式编程面向的用户群体,是对数学有特殊偏爱的那些人,因此,函数式编程只能沦落为供少数人把玩的玩意儿。

未来,随着人工智能技术和量子计算技术的不断发展,普通程序员可能面临失业的风险,因此,函数式编程语言扔有可能会被最终幸存的程序员们接受,并成为能有效产生生产力的开发工具,就像现代数学被很多领域的专家接受一样,但这一定是相当多年以后的事情了。

猜你喜欢

转载自blog.csdn.net/quicmous/article/details/80702002
今日推荐