八皇后问题haskell版

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

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

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

8*8格子

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

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

于是我也写一个普适版:

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


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容