这里只是几个f#简单的算法应用,请各位别怕砖。

  1. 代码   
  2.  1 // Learn more about F# at http://fsharp.net  
  3.  2   
  4.  3 #light  
  5.  4 open System  
  6.  5   
  7.  6   
  8.  7 //简单的网页抓取  
  9.  8 open System.Text  
  10.  9 open System.IO  
  11. 10 open System.Net  
  12. 11 let http (url:string)=  
  13. 12     let request=System.Net.WebRequest.Create(url)  
  14. 13     let response=request.GetResponse()  
  15. 14     let stream=response.GetResponseStream()  
  16. 15     let reader=new System.IO.StreamReader(stream)  
  17. 16     let html =reader.ReadToEnd();  
  18. 17     html  
  19. 18 printfn "%s" (http "http://www.google.com")  
  20. 19   
  21. 20 //汉罗塔问题:  
  22. 21 let rec HanLiTa n a b c =  
  23. 22     match n with 
  24. 23     | 1 -> printfn " Move %s to %s ;"  a c  
  25. 24     | num ->  HanLiTa (num-1) a c b ;HanLiTa 1 a b c ; HanLiTa (num-1) b a c ;  
  26. 25   
  27. 26 let n=4  
  28. 27 printfn "HanLiTa start (%d):" n  
  29. 28 HanLiTa n "A" "B" "C" 
  30. 29   
  31. 30 //Fibonacci基数  
  32. 31   
  33. 32 let rec Fib n =   
  34. 33     match n with 
  35. 34     |2 |1 -> 1  
  36. 35     |i when i >1 -> Fib (i-1) + Fib (i-2)  
  37. 36     |x  when x<= 0 -> failwith " you should input a Interger;" 
  38. 37   
  39. 38 let fibn=5      
  40. 39 printfn "Fibonacci %d : %d"     fibn (Fib fibn)  
  41. 40   
  42. 41   
  43. 42 //杨辉三角  
  44. 43 let rec combi n r =  
  45. 44     let p=ref 1;  
  46. 45     [1 .. r] |> List.iter(fun g ->  p:=!p*(n-g+1)/g );  
  47. 46     !p  
  48. 47   
  49. 48 let CombiPrint N=  
  50. 49     [0 .. N] |>  
  51. 50          List.iter(fun g -> ([0 .. g] |>  
  52. 51                                     List.iter(fun h->   
  53. 52                                                 if h=0 then   
  54. 53                                                     [0..(N-g)] |>  
  55. 54                                                              List.iter(fun s->printf "  ") ;   
  56. 55                                                 printf "%5d" (combi g h));  
  57. 56                         printf "\r\n"));  
  58. 57   
  59. 58 printfn "\r\n杨辉三角:" 
  60. 59 CombiPrint 10  
  61. 60   
  62. 61   
  63. 62 Console.Read() |>ignore