熊英飞
为什么Haskell不能写大型程序
2009-3-26 16:58
阅读:9538
可能有无数的原因导致Haskell写不了大型程序,这里只提其中一点。

程序维护中一个非常常见的操作是给一个类添加一个属性,在Java里面我们只需要直接加上去了就好了。比如,把Person { int Age; String Name} 变成 Person {int Age; String Name; boolean Sex}.

但是如果在Haskell里面就不那么简单了。首先我们需要把Person Int String改成Person Int String Bool,然后我们需要在所有对Person做了Pattern Matching的地方都进行修改。任何一个Person a b都要改成Person a b _。这个修改数量往往大的不可想像。

如果我们对Person进行了很好的封装,所有的数据访问都通过函数来进行,比如getAge, getName。那我们至少也要修改这些函数定义里面的Pattern。在一个大型类里面工作量仍然不小。

除非有IDE实现了很好的重构功能,否则这将是一个非常严重的维护问题。可惜据我所知,目前还没有带重构功能的Haskell IDE。唯一能找到一个vim/emacs的重构工具还仍然是实验室产品:http://www.cs.kent.ac.uk/projects/refactor-fp/hare.html

转载本文请联系原作者获取授权,同时请注明本文来自熊英飞科学网博客。

链接地址:https://wap.sciencenet.cn/blog-211989-222643.html?mobile=1

收藏

分享到:

当前推荐数:0
推荐到博客首页
网友评论2 条评论
确定删除指定的回复吗?
确定删除本博文吗?