haiconc

对函数的推广

现在,计算机领域里有很多各种各样的语言,比如汇编语言、高级语言、命令式语言、函数式语言、逻辑式语言、静态语言、动态语言、脚本语言等等等,这些语言花样繁多,各有各的不同,但是函数是它们共有的,而且函数的重要性就要细胞之对于世界所有的生物一样。

从古至今的函数,它们都长的是同一个样子,都是函数名加参数,这应该是从数学里学习过来的。

 

如果要对现在的函数改造一下会怎么样?肯定会引起程序巨大的改变。

 

现在的函数局限在于,它的函数名只有一个字符串,所有的意思都要挤在这一个短短的字符串里,比如move(a),GetByNode(a,b,c)...

 

现在我们把函数的定义改这样,函数是带有若干个参数的一个语句。

 

下面举两个例子。

(1)三元运算符"?:"的作用不小我们经常用,现在我们可以把它从语言里踢除,改用一个推广的函数If(a) Get (b) Else Get(c),这样更容易理解。

 

(2)比如要定义一个函数,足球football以速度speed、角度angle、起点start移动到终点end,一般我们是这样定义的

void move(Football football,int speed,int angle,Point start,Point end)

,我们用推广的函数就可以很好的定义

(Football football)以速度(int speed)角度(angle)(Point start)移动到(Point end),

使用时

(f)以速度(s)角度(a)(start)移动到(end)

绝对比

move(f,s,a,start,end)要爽的多。

 

推广的函数有一个缺点,就是用起来打字比较多,但是它这样更容易理解使用维护,大部分情况下完全可以代替文档注释

 

 

posted on 2012-05-29 16:07  haiconc  阅读(505)  评论(2编辑  收藏  举报

导航