冒号课堂§4.1:函数范式 - 编程入门网
匆匆,若能感受到途中景色带来的感官冲击,便算是不枉此行了。其实,把编程范式类比旅游景点并不十分准确,或许比作当地的风俗文化更确切些。”
句号立刻会意:“景点是具体的,背后的风俗文化是抽象的;编程语言是具体的,背后的编程范式是抽象的。” “此乃其一。”冒号右手伸出食指,“其二,如果不了解景点的历史文化和风俗人情,仅仅满足于表面的奇观异景,一切很快便会淡忘。比如说,你若不了解圣经文化、不了解文艺复兴史,则欧洲之行至多只是视觉的盛宴,而非文化的洗礼,收获将是有限的,印象将是肤浅的。同样,如果你不了解编程范式,那么眼中的编程语言只是语法、语义、核心库、规范等组成的集合,写出的代码虽能编译、能工作,却会显得生硬、别扭。就像中式英语,语法正确、表达也正确,可就是不正宗、不地道。其症结我们在第一节课中已经提过了,即所谓的语感缺失。” 问号实话实说:“可我还是不明白编程范式如何提高我们的编程语感。” “那就让我们再说说范式吧。”冒号并不着急,“范式可以粗略理解为模范、模型、模式、风格、流派等等。软件中的范式除了编程范式外,还有架构范式[1]、数据库范式[2]等。比如,对象导向式(Object-Oriented)可以应用于编程、架构和数据库中,分别成为OOP(Object-Oriented Programming)、OOA(Object-Oriented Architecture)和OODB(object-oriented database);类似地,事件驱动式(Event-Driven)可以是一种编程范式,可以是一种架构模型,也可以是一种设计模式。总之,每种范式都代表着一套独特而有效的解决问题的思想和方法。掌握范式对编程语感的提高至少有两层作用:首先,编程语言的语法、语义等都是从编程范式的树根衍生而出的枝叶,把握了这种脉络和节奏,代码才会如音乐舞蹈般韵律有致;其次,每种范式擅长的问题领域不尽相同,只有博闻广识,方可扬长避短,程序才会如行云流水般流畅自然。” 逗号添油加醋:“武功练至化境,一定是博采众长,就像杨过融合了东邪、西毒、南帝、北丐、中神通等各派武功,才能随心所欲地打出黯然销魂掌来。” 提起武侠人物,众人俱是逸兴遄飞,哪能体会到半点黯然消魂之伤? 冒号道:“天下之理,殊途同归。我们停止玄玄之论,用实例来说明吧。谁来介绍一下快速排序法(quicksort)?” 众人飞舞的思绪渐渐收敛,终于由引号作答:“快速排序法的思想是:在列表中找一个基准元素,将所有小于它的元素划归一个子列,置于其前;将所有大于等于它的元素划归另一子列,置于其后。然后递归地对前后两个子列作同样处理,直至最终。” 冒号课堂§4.1:函数范式(3)时间:2011-06-25 BlogJava xyz98“很好,让我们用Java来实现一下该算法。”冒号显示出一段代码——
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |