正在做彩票数据的多维度分析工具,意识到选择一门表现力高的语言非常重要。先问一个问题,如果要找bug的话,你愿意只在5行里找,还是在50行里找呢?这不仅是一个关乎生产力的问题,还是一个软件复杂度到多大就失去可维护性的问题(数据分析是高维度的复杂问题)。下面是一个维度仅为4的数学问题:
把八个皇后在一个八格乘以八格的棋盘上,如果两个皇后同行、同列、同斜线就会攻击,求互不攻击放完八个皇后的解决方案的个数。
haskell版只用了五行(最后一行只是输出):
Clojure的表现让我失望 ,行数和Java一样多得惨不忍睹,不过人家解决的是更普适的N皇后问题,不限八个格子。
于是我也写一个普适版:
只是对前3行各加了一个字母m ! 这样看来,haskell的表现力真是完爆Clojure了。