2.5.6 函数式编程
之前我们提到两种“编程范式”,面向对象和面向过程。 还有另外一种重要的范式叫函数式编程。
什么是函数式编程
Learning By Reading 难度:★★ 重要性:★★★
阅读材料,
了解函数式编程的要领。
Learning By Reading 难度:★★ 重要性:★★
不同编程范式有无优劣?每个人或许都有自己的想法。比如这里。
谈谈你对文中观点的看法。
Python函数式编程
Learning By Reading 难度:★★★ 重要性:★★
Learning By Thinking 难度:★★ 重要性:★★★
上文提到如何将
for
和while
转成更符合函数式编程思想的代码,我们记得列表解析也可以用来建
list
,你觉得列表解析是函数式编程吗?说说理由。
turtle
库不是用函数式编程思想写的,因为它有外部状态(比如屏幕上的图案),并且在函数内部改变了参数的值(比如海龟的位置)。
我们将通过一个捏造的例子来感受一下Python的函数式编程。
Learning By Doing 难度:★★★ 重要性:★★★
用函数式编程思想,输入一篇文章和一份**词表,其中文章已经分好词(用 空格 隔开 像 这样 把 不同 的 词 隔开),
且被换行符分成若干段落,要求将出现在**词表中的词,每两个字之间插入字符串
(hx)
,如编程
变成编(hx)程
,输出插入字符串后,每个段落中最长的词和最短的词。
Tasks For Tutors
以前我有个友人我有个友人,捷敏辩给,多智好学,以前有一次和他谈到面向对象,我说,“小时候学的时候都看书上说面向对象怎么怎么好,用了之后吧其实也有很多问题。”他说,“我*,你竟然不知道面向对象的好处,我对你真是太失望了!”
当然我们并没有友尽,后来他去西藏建设社会主义去了,当然这两件事之间没有任何联系。和学员们聊聊对面向对象,函数式编程,面向过程几种主要编程范式的看法。(注意文明讨论
Last updated