八皇后问题haskell版

正在做彩票数据的多维度分析工具,意识到选择一门表现力高的语言非常重要。先问一个问题,如果要找bug的话,你愿意只在5行里找,还是在50行里找呢?这不仅是一个关乎生产力的问题,还是一个软件复杂度到多大就失去可维护性的问题(数据分析是高维度的复杂问题)。下面是一个维度仅为4的数学问题:

把八个皇后在一个八格乘以八格的棋盘上,如果两个皇后同行、同列、同斜线就会攻击,求互不攻击放完八个皇后的解决方案的个数。

haskell版只用了五行(最后一行只是输出):

八皇后问题haskell版_第1张图片
8*8格子

其它语言需要的行数都挺多,特别点名批评Java 。

Clojure的表现让我失望  ,行数和Java一样多得惨不忍睹,不过人家解决的是更普适的N皇后问题,不限八个格子。

于是我也写一个普适版:

只是对前3行各加了一个字母m ! 这样看来,haskell的表现力真是完爆Clojure了。


你可能感兴趣的:(八皇后问题haskell版)