你想要一个香蕉,但得到的却是一个拿着香蕉的大猩猩

注:本文转载自外刊IT评论

Joe Armstrong(Erlang语言的创造者)就软件的可重用性问题发表的意见:

我认为,可重用性不足是面向对象编程语言里才会有的问题,函数式编程语言没有这个问题。面向对象的编程语言之所以有这个问题是因为它们需要整个的内在的系统做支持。你想要一个香蕉,但得到的却是一个拿着香蕉的大猩猩,还有整个丛林。

如果你的代码具有亲系透彻性(referential transparency),你用的是纯函数—所有的数据都只跟它的输入参数,输出值有关,不会留下任何的持久状态—这是绝对的可重用性。

来源:Coders at Work。作者用粗体进行强调。

我大部分的工作都是用的面向对象语言,而且近期也不会有任何的改变。我对函数式编程技术更感兴趣,而不是函数式编程语言:我编写纯函数,用函数当作参数或返回值等等。就像Joe Armstrong说的,这种程序代码易于重用。如果你想重用(或测试)一个函数式香蕉,你不需要先造出一个丑陋的大猩猩来拿着这个香蕉。

 

收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部