函数式编程讲白了 就是要把函数本身当成变数 传送给其他函数. 函数式编程并不是Python专有的技术 大多程式语言都可以实作出来 如 C的函数指标 C# 的delegate 甚至连JavaScript都可以实作出来. 如果您是专精Java的话 那就只有在Java SE8才开始支援 也就是所谓的Lambda.
C的函数指标很早就有了 一般人比较少去接触到这个领域 再加上C# Python也是最近这几年才开始流行 Java更是到了8版才支援 所以才会误以为是新的领域. 近来程式愈来愈复杂 要求的功能愈来愈多 所以函数指标就突显了其强大的功能及重要性.
以abs(-10)函数为例 会返回参数的绝对值. abs为系统的内建函数 但如果把 abs直接印出来会怎样呢?
说实在 熟强型语言的人 是绝对不会去写这种白痴程式的. 但在弱型语言里 却是再正常不过的事. 因为在Python中 函数名称就是变数 他指向一个能计算绝对值的区块程式码.
那如果把abs指到别的地方呢? 这下子 abs将不再计算绝对值了 直接变成了变数的功能.
当然啦 在实际程式码中 我们是不可能白痴到直接把abs给干掉的.