博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
F#初试(2)
阅读量:5944 次
发布时间:2019-06-19

本文共 1516 字,大约阅读时间需要 5 分钟。

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

 

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

 

本文转自破狼博客园博客,原文链接:http://www.cnblogs.com/whitewolf/archive/2010/11/29/1891322.html,如需转载请自行联系原作者

你可能感兴趣的文章
UVA 122 Trees on the level 二叉树 广搜
查看>>
POJ-2251 Dungeon Master
查看>>
tortoisesvn的安装
查看>>
我是怎么使用最短路径算法解决动态联动问题的
查看>>
URAL 1353 Milliard Vasya's Function DP
查看>>
速读《构建之法:现代软件工程》提问
查看>>
Android onclicklistener中使用外部类变量时为什么需要final修饰【转】
查看>>
django中聚合aggregate和annotate GROUP BY的使用方法
查看>>
TFS简介
查看>>
docker管理平台 shipyard安装
查看>>
安装django
查看>>
Bootstrap3 栅格系统-简介
查看>>
ADODB类库操作查询数据表
查看>>
【java】File的使用:将字符串写出到本地文件,大小0kb的原因
查看>>
安卓音乐播放器开发实例
查看>>
some requirement checks failed
查看>>
存储管理
查看>>
HDU-2089-不要62
查看>>
Latex学习笔记0
查看>>
css控制div强制换行
查看>>