这几天正在学习F# 函数式编程语言,今天特地牛刀小试,写了一个文件目录层次结构树形的缩进打印Code,练练手。一直想找一本F#中文书籍PDF看看,网上搜了半天都没有找到,就从一个程序员的自省个F#系列了,在这里先感谢一个程序员的自省,希望能与大家多交流下F#。

不说了,看Code:

  1. 代码   
  2. #light   
  3. open System   
  4. open System.Text   
  5. open System.IO   
  6.  
  7. (* F# File Tree *)   
  8. let rec FileTree ( (sb : StringBuilder),( dir : System.IO.DirectoryInfo),(indexStr : string)) =   
  9.      sb.Append(indexStr + dir.Name  + "\r\n") |> ignore   
  10.      let dirs=dir.GetDirectories()   
  11.      Array.iter (fun (d : DirectoryInfo) ->                  
  12.         FileTree (sb,d,(indexStr + "--" )) |> ignore) dirs   
  13.  
  14.      let files = dir.GetFiles()   
  15.      Array.iter (fun (fi : FileInfo) -> sb.Append(indexStr + "--" + fi.Name + "\r\n") |> ignore) files  
  16.  
  17. let path = @"E:\MyStudy\EBook"   
  18.  
  19. let sb =new StringBuilder()   
  20. FileTree (sb,(new DirectoryInfo(path)),"")   
  21. Console.WriteLine(sb.ToString())   
  22.  
  23. Console.Read() |> ignore 
  24.  

结果图:

闪了,先回家吃饭了...