和小家伙一起学编程 006 函数

96
closer2sky 22d8d123 271c 4d80 9c59 6990844a9e37
2019.02.08 20:39* 字数 780

数学上的函数,记做:

y = f(x)

是伟大的莱布尼茨(G.W.Leibniz)提出的。

在中国,最早由清代数学家李善兰翻译,其著作《代数学》中写到:“凡此变数中函彼变数者,则此为彼之函数”。

计算机中的函数也类似,不过要更宽泛,比如x可以不止一个,称为参数……

函数好像一台家用电器或者别的什么机器,空调、洗衣机、电视,我们可以通过开关、旋钮等控制它,输入数据,它会按照设计的功能执行,返回某种结果。

从另一个角度看,对于整个程序而言,函数又好像机器中的零部件、功能模块,我们把大的复杂的问题分解为更小的问题,每个函数解决一个小问题,这样像搭积木一样我们就搭起了解决大问题的程序,而且,这些小的模块还可以在其他程序中反复使用。

Scratch可以自制积木,它的功能接近于函数。

Scratch 自制积木的例子

我们先做一个“小鸟琴”:

“小鸟琴”第一只小鸟的代码
“小鸟琴”第二只小鸟的代码

后面三只小鸟的代码也类似,选择不同的音符播放就可以了,这样我们可以像弹琴那样点击小鸟来演奏音乐了。

播放“乐谱”的代码

现在在舞台上添加上图的代码,当我们按下空格键,就可以输入类似“ABCDEACACEE”这样的“乐谱”,输入以后,小鸟琴就会把乐谱演奏出来。

这时,我们可能会想到,我们有了播放不同乐谱的能力,如果我们想在别的Scratch程序中播放某段音乐,比如我们想做一个考验音乐记忆能力的小游戏,我们就可以用这段代码,于是我们可以把这个功能放到一个自制积木里:

自制积木
不需要显示小鸟,只演奏乐谱的自制积木

Python 函数的例子

哎呀,懒得自己写了,正好推荐一“本”网上的好书:

How to Think Like a Computer Scientist: Learning with Python 3

其中函数一章:

4. Functions

函数式编程

我们说过面向对象的编程,函数式编程(Functional Programming)是另一种很牛的编程思想或者方法,也是我喜爱的,就不多说了,推荐两本正儿八经的的编程学习书吧:

Learn You a Haskell for Great Good!

Haskell趣学指南(Learn You a Haskell for Great Good!)

The Little Schemer

The Little Schemer:递归与函数式的奥妙

节点目录

和小家伙一起学编程 000 出发

和小家伙一起学编程 001 条件

和小家伙一起学编程 002 循环

和小家伙一起学编程 003 随机

和小家伙一起学编程 004 编码

和小家伙一起学编程 005 对象

和小家伙一起学编程 006 函数

和小家伙一起学编程 007 算法

和小家伙一起学编程
Web note ad 1