F#写的N皇后问题,欢迎拍砖

aimeast 2010-04-22 11:38:56
F#写的N皇后问题,还未领悟到F#的精髓,所以写的如此没有可读性。

欢迎各位拍砖,顺便再次申请F#板块

let NQueens n =
let a = [|for i in 0..n -> true|]
let b = [|for i in 0..(2 * n - 1) -> true|]
let c = [|for i in 0..(2 * n - 1) -> true|]
let path = [|for i in 0..n -> 0|]

let rec Solve n j =
if j > n then
printfn "%A" path.[1..]
else
for i in 1..n do
if (a.[i] && b.[i + j - 1] && c.[n - i + j]) then
a.[i] <- false
b.[i + j - 1] <- false
c.[n - i + j] <- false
path.[j] <- i
do Solve n (j + 1)
a.[i] <- true
b.[i + j - 1] <- true
c.[n - i + j] <- true
do Solve n 1
printfn ""

List.iter NQueens [1..10]

System.Console.ReadKey()|>ignore
...全文
314 49 打赏 收藏 转发到动态 举报
写回复
用AI写文章
49 条回复
切换为时间正序
请发表友善的回复…
发表回复
aimeast 2010-04-24
  • 打赏
  • 举报
回复
[Quote=引用 48 楼 ojlovecd 的回复:]

昨天下午在QCon大会听了Timothy Ng(F#的Lead)关于F#并行及异步编程的演讲,晚上还一起吃了饭,感觉F#的确是挺强大的,但是现在习惯了OO语言,一开始看函数式编程真是很别扭。我也很赞成CSDN赶紧开F#板块。
[/Quote]FSharp也可以OO的,我还没看到那呢。只在目录里看见有Object-Oriented Programming
正在转换为函数式思维中
我姓区不姓区 2010-04-24
  • 打赏
  • 举报
回复
昨天下午在QCon大会听了Timothy Ng(F#的Lead)关于F#并行及异步编程的演讲,晚上还一起吃了饭,感觉F#的确是挺强大的,但是现在习惯了OO语言,一开始看函数式编程真是很别扭。我也很赞成CSDN赶紧开F#板块。
aimeast 2010-04-24
  • 打赏
  • 举报
回复
[Quote=引用 46 楼 lost_painting 的回复:]

微软,佩服了,跟着MS玩,总有一天我会心肌梗塞而死。

算了,不能太去追新潮了,微软几千个专家,我只有人一个。

等用到了再学了。

累!

还准备重新复习 数据结构,算法,高数,离散等等,越来越觉得基础很重要了。
[/Quote]我只相信生产力,相信团队,相信自己
鸭梨山大帝 2010-04-24
  • 打赏
  • 举报
回复
微软,佩服了,跟着MS玩,总有一天我会心肌梗塞而死。

算了,不能太去追新潮了,微软几千个专家,我只有人一个。

等用到了再学了。

累!

还准备重新复习 数据结构,算法,高数,离散等等,越来越觉得基础很重要了。
aimeast 2010-04-24
  • 打赏
  • 举报
回复
[Quote=引用 42 楼 wuyi8808 的回复:]http://msdn.microsoft.com/zh-cn/fsharp/cc835246.aspx
这里介绍了一些学习F#的书籍,目前只有英文版的。
[/Quote]3ku,一直都在看Programming F#。
顺便,刚刚写出FSharp的快排
let rec qsort = function
| [] -> []
| (x:int)::xs ->
let left = List.choose (fun elem -> if elem<=x then Some(elem) else None) xs
let right = List.choose (fun elem -> if elem>x then Some(elem) else None) xs
qsort left @ [x] @ qsort right

let result = qsort [1;8;3;4;7;6;2;9;5;1;5;6;7;8;3;4;5;6;3]
printfn "%A" result
polarissky 2010-04-24
  • 打赏
  • 举报
回复
(⊙o⊙)…,不懂,帮顶
wuyq11 2010-04-24
  • 打赏
  • 举报
回复
F#使用还不多
wuyi8808 2010-04-24
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/zh-cn/fsharp/cc835246.aspx
这里介绍了一些学习F#的书籍,目前只有英文版的。
jackmtlee 2010-04-24
  • 打赏
  • 举报
回复
不懂函数式编程,帮楼主顶一个
radiu7 2010-04-24
  • 打赏
  • 举报
回复
光柱!
sjz123426 2010-04-24
  • 打赏
  • 举报
回复
有点像asp。。。。。不是我糊你。。。。。。
Glory_genius 2010-04-23
  • 打赏
  • 举报
回复
完了 直接读不懂!
ChrisAK 2010-04-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wuyi8808 的回复:]
引用 3 楼 aimeast 的回复:
空军别只管沙发,别忘了替咱们申请F#版块啊!


这个,要向 .NET 的大版主申请的,首先要做通 .NET 大版主的工作。
[/Quote]How?难道要用可用分贿赂?
话说我现在写的f#程序也是...
除了语法咋看都像C系列的程序
lanfengsese 2010-04-23
  • 打赏
  • 举报
回复
学习,MARK
hongqun369 2010-04-23
  • 打赏
  • 举报
回复
let定义变量?学习....
FMNISME 2010-04-23
  • 打赏
  • 举报
回复
upup
cod了个er 2010-04-23
  • 打赏
  • 举报
回复
f#跟c#的区别是什么啊
shang123guan 2010-04-23
  • 打赏
  • 举报
回复
如你所愿,拍个砖
oyctzl 2010-04-23
  • 打赏
  • 举报
回复
学习学习..
yuanhuiqiao 2010-04-23
  • 打赏
  • 举报
回复
支持~~
加载更多回复(29)

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧