<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_外面的世界很精彩</title><subtitle type="text">你好，再见</subtitle><id>http://feed.cnblogs.com/blog/u/18587/rss</id><updated>2011-05-28T12:07:03Z</updated><author><name>Pandora</name><uri>http://www.cnblogs.com/pandora/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pandora/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/18587/rss"/><entry><id>http://www.cnblogs.com/pandora/archive/2011/05/28/MongoDB_Asp_Net_MVC3_CRUD.html</id><title type="text">MongoDB on Asp.Net MVC3–CRUD</title><summary type="text">上回我们已经创建了一个简单的Asp.Net MVC3网站并成功的连接了MongoDB。但只实现了创建和显示的功能。本回实现了完整的增删改查。 创建的部分，上次的代码中存在一些错误，造成了每个属性都会被创建为单独的一条记录，这并不是我们期待的结果。更改如下： \Controllers\HomeController.cs 1: [HttpPost] 2: public ActionResult Create(FormCollection collection) 3: { 4: try 5: { 6: var db = GetDB(); 7: var doc = new BsonDocument()</summary><published>2011-05-28T12:02:00Z</published><updated>2011-05-28T12:02:00Z</updated><author><name>Pandora</name><uri>http://www.cnblogs.com/pandora/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pandora/archive/2011/05/28/MongoDB_Asp_Net_MVC3_CRUD.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pandora/archive/2011/05/28/MongoDB_Asp_Net_MVC3_CRUD.html"/><content type="html">&lt;p&gt;&lt;a href="http://www.cnblogs.com/pandora/archive/2011/05/26/MongoDB_On_Asp_Net_MVC_3.html" target="_blank"&gt;上回&lt;/a&gt;我们已经创建了一个简单的Asp.Net MVC3网站并成功的连接了MongoDB。但只实现了创建和显示的功能。本回实现了完整的增删改查。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;创建的部分，上次的代码中存在一些错误，造成了每个属性都会被创建为单独的一条记录，这并不是我们期待的结果。更改如下：&lt;/p&gt; &lt;p&gt;\Controllers\HomeController.cs&lt;/p&gt; &lt;div class="csharpcode"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;        [HttpPost]&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; ActionResult Create(FormCollection collection)&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        {&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;            {&lt;span class="lnum"&gt;   6:  &lt;/span&gt;                var db = GetDB();&lt;span class="lnum"&gt;   7:  &lt;/span&gt;                var doc = &lt;span class="kwrd"&gt;new&lt;/span&gt; BsonDocument();&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&amp;nbsp;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var key &lt;span class="kwrd"&gt;in&lt;/span&gt; collection.AllKeys)&lt;span class="lnum"&gt;  10:  &lt;/span&gt;                {&lt;span class="lnum"&gt;  11:  &lt;/span&gt;                    doc.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; BsonElement(key, collection[key]));&lt;span class="lnum"&gt;  12:  &lt;/span&gt;                }&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&amp;nbsp;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;                db[&lt;span class="str"&gt;"testTable"&lt;/span&gt;].Insert(doc);&lt;span class="lnum"&gt;  15:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; RedirectToAction(&lt;span class="str"&gt;"Index"&lt;/span&gt;);&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            }&lt;span class="lnum"&gt;  17:  &lt;/span&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;            {&lt;span class="lnum"&gt;  19:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; View();&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            }&lt;span class="lnum"&gt;  21:  &lt;/span&gt;        }&lt;/div&gt;&lt;p&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;其实这样写并不安全，会把所有从页面POST过来的内容都作为属性创建并保存，但是简单啦。我们注意力主要集中在MongoDB的使用，安全性并不在考虑范围内。&lt;/p&gt;&lt;p&gt;显示的部分，也做了相应的修改，使其更符合Asp.Net MVC3 Razor引擎的规范：&lt;/p&gt;&lt;p&gt;\Controllers\HomeController.cs&lt;/p&gt;&lt;div class="csharpcode"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; ActionResult Index()&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        {&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            var testTable = GetDB()[&lt;span class="str"&gt;"testTable"&lt;/span&gt;].FindAll();&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; View(testTable);&lt;span class="lnum"&gt;   5:  &lt;/span&gt;        }&lt;/div&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;p&gt;\Views\Home\Index.cshtml&lt;/p&gt;&lt;div class="csharpcode"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;@{&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    ViewBag.Title = &lt;span class="str"&gt;"Index"&lt;/span&gt;;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    Layout = &lt;span class="str"&gt;"~/Views/Shared/_Layout.cshtml"&lt;/span&gt;;    &lt;span class="lnum"&gt;   4:  &lt;/span&gt;}&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&amp;lt;h2&amp;gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    Index&amp;lt;/h2&amp;gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&amp;lt;ul&amp;gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    @&lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var testData &lt;span class="kwrd"&gt;in&lt;/span&gt; Model)&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    {&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        &amp;lt;li&amp;gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;            @{&lt;span class="lnum"&gt;  12:  &lt;/span&gt;        var id = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var property &lt;span class="kwrd"&gt;in&lt;/span&gt; testData.Names)&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        {&lt;span class="lnum"&gt;  15:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (property == &lt;span class="str"&gt;"_id"&lt;/span&gt;)&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            {&lt;span class="lnum"&gt;  17:  &lt;/span&gt;                id = testData[property].ToString();&lt;span class="lnum"&gt;  18:  &lt;/span&gt;            }&lt;span class="lnum"&gt;  19:  &lt;/span&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            {&lt;span class="lnum"&gt;  21:  &lt;/span&gt;                @&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}:{1}"&lt;/span&gt;, property, testData[property]);&amp;lt;br /&amp;gt;                            &lt;span class="lnum"&gt;  22:  &lt;/span&gt;            }&lt;span class="lnum"&gt;  23:  &lt;/span&gt;        }                &lt;span class="lnum"&gt;  24:  &lt;/span&gt;                &amp;lt;a href=&lt;span class="str"&gt;"/Home/Delete/@id"&lt;/span&gt;&amp;gt;Delete&amp;lt;/a&amp;gt; &amp;lt;a href=&lt;span class="str"&gt;"/Home/Edit/@id"&lt;/span&gt;&amp;gt;Edit&amp;lt;/a&amp;gt; &amp;lt;a href=&lt;span class="str"&gt;"/Home/Details/@id"&lt;/span&gt;&amp;gt;Details&amp;lt;/a&amp;gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;            }&lt;span class="lnum"&gt;  26:  &lt;/span&gt;        &amp;lt;/li&amp;gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;    }&lt;span class="lnum"&gt;  28:  &lt;/span&gt;&amp;lt;/ul&amp;gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;&amp;lt;a href=&lt;span class="str"&gt;"/Home/Create"&lt;/span&gt;&amp;gt;Create New&amp;lt;/a&amp;gt;&lt;/div&gt;&lt;p&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;总体来说，Razor引擎的代码写起来还是流畅+愉快。有一个简单的校技巧，想要链接目录从网站根目录开始的话，要用&amp;#8220;/&amp;#8221;开头。&lt;/p&gt;&lt;p&gt;显示效果如下：&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/pandora/201105/201105282002115496.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/pandora/201105/20110528200212904.png" width="208" height="283" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;接下来我们就分别来实现删除，编辑和查看功能。&lt;/p&gt;&lt;p&gt;Details链接：&lt;/p&gt;&lt;p&gt;\Controllers\HomeController.cs&lt;/p&gt;&lt;div class="csharpcode"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; ActionResult Details(&lt;span class="kwrd"&gt;string&lt;/span&gt; id)&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        {&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            {&lt;span class="lnum"&gt;   5:  &lt;/span&gt;                var db = GetDB();&lt;span class="lnum"&gt;   6:  &lt;/span&gt;                var doc = db[&lt;span class="str"&gt;"testTable"&lt;/span&gt;].Find(Query.EQ(&lt;span class="str"&gt;"_id"&lt;/span&gt;, &lt;span class="kwrd"&gt;new&lt;/span&gt; BsonObjectId(id))).First();                &lt;span class="lnum"&gt;   7:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; View(doc);&lt;span class="lnum"&gt;   8:  &lt;/span&gt;            }&lt;span class="lnum"&gt;   9:  &lt;/span&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            {&lt;span class="lnum"&gt;  11:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; View();&lt;span class="lnum"&gt;  12:  &lt;/span&gt;            }            &lt;span class="lnum"&gt;  13:  &lt;/span&gt;        }&lt;/div&gt;&lt;p&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;Edit页面：&lt;/p&gt;&lt;p&gt;\Controllers\HomeController.cs&lt;/p&gt;&lt;div class="csharpcode"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; ActionResult Edit(&lt;span class="kwrd"&gt;string&lt;/span&gt; id)&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        {&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            var db = GetDB();&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            var doc = db[&lt;span class="str"&gt;"testTable"&lt;/span&gt;].Find(Query.EQ(&lt;span class="str"&gt;"_id"&lt;/span&gt;, &lt;span class="kwrd"&gt;new&lt;/span&gt; BsonObjectId(id))).First();&lt;span class="lnum"&gt;   5:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; View(doc);&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        }&lt;/div&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;p&gt;\Home\Edit.cshtml&lt;/p&gt;&lt;div class="csharpcode"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;@{&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    ViewBag.Title = &lt;span class="str"&gt;"Edit"&lt;/span&gt;;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    Layout = &lt;span class="str"&gt;"~/Views/Shared/_Layout.cshtml"&lt;/span&gt;;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;}&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&amp;lt;h2&amp;gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    Edit&amp;lt;/h2&amp;gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&amp;lt;form method=&lt;span class="str"&gt;"post"&lt;/span&gt; action=&lt;span class="str"&gt;"/Home/Edit/@Model["&lt;/span&gt;_id&lt;span class="str"&gt;"].ToString()"&lt;/span&gt;&amp;gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    Name:&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    &amp;lt;input name=&lt;span class="str"&gt;"name"&lt;/span&gt; type=&lt;span class="str"&gt;"text"&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;"@Model["&lt;/span&gt;name&lt;span class="str"&gt;"]"&lt;/span&gt; /&amp;gt;&amp;lt;br /&amp;gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    Age:&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    &amp;lt;input name=&lt;span class="str"&gt;"age"&lt;/span&gt; type=&lt;span class="str"&gt;"text"&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;"@Model["&lt;/span&gt;age&lt;span class="str"&gt;"]"&lt;/span&gt; /&amp;gt;&amp;lt;br /&amp;gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    Gender:&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    &amp;lt;input name=&lt;span class="str"&gt;"gender"&lt;/span&gt; type=&lt;span class="str"&gt;"text"&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;"@Model["&lt;/span&gt;gender&lt;span class="str"&gt;"]"&lt;/span&gt; /&amp;gt;&amp;lt;br /&amp;gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    Married:&lt;span class="lnum"&gt;  15:  &lt;/span&gt;    &amp;lt;input name=&lt;span class="str"&gt;"married"&lt;/span&gt; type=&lt;span class="str"&gt;"text"&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;"@Model["&lt;/span&gt;married&lt;span class="str"&gt;"]"&lt;/span&gt; /&amp;gt;&amp;lt;br /&amp;gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;    &amp;lt;input type=&lt;span class="str"&gt;"submit"&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;"Update"&lt;/span&gt; /&amp;gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;    &amp;lt;a href=&lt;span class="str"&gt;"/Home/Index"&lt;/span&gt;&amp;gt;Cancel&amp;lt;/a&amp;gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&amp;lt;/form&amp;gt;&lt;/div&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;p&gt;\Controllers\HomeController.cs&lt;/p&gt;&lt;div class="csharpcode"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;        [HttpPost]&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; ActionResult Edit(&lt;span class="kwrd"&gt;string&lt;/span&gt; id, FormCollection collection)&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        {&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;            {&lt;span class="lnum"&gt;   6:  &lt;/span&gt;                var db = GetDB();&lt;span class="lnum"&gt;   7:  &lt;/span&gt;                var update = &lt;span class="kwrd"&gt;new&lt;/span&gt; UpdateBuilder();&lt;span class="lnum"&gt;   8:  &lt;/span&gt;                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (&lt;span class="kwrd"&gt;string&lt;/span&gt; key &lt;span class="kwrd"&gt;in&lt;/span&gt; collection.Keys)&lt;span class="lnum"&gt;   9:  &lt;/span&gt;                {&lt;span class="lnum"&gt;  10:  &lt;/span&gt;                    update.Set(key, collection[key]);&lt;span class="lnum"&gt;  11:  &lt;/span&gt;                }&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&amp;nbsp;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;                db[&lt;span class="str"&gt;"testTable"&lt;/span&gt;].Update(Query.EQ(&lt;span class="str"&gt;"_id"&lt;/span&gt;, &lt;span class="kwrd"&gt;new&lt;/span&gt; BsonObjectId(id)), update);&lt;span class="lnum"&gt;  14:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; RedirectToAction(&lt;span class="str"&gt;"Index"&lt;/span&gt;);&lt;span class="lnum"&gt;  15:  &lt;/span&gt;            }&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;            {&lt;span class="lnum"&gt;  18:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; View();&lt;span class="lnum"&gt;  19:  &lt;/span&gt;            }&lt;span class="lnum"&gt;  20:  &lt;/span&gt;        }&lt;/div&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;p&gt;删除功能：&lt;/p&gt;&lt;p&gt;\Controllers\HomeController.cs&lt;/p&gt;&lt;div class="csharpcode"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; ActionResult Delete(&lt;span class="kwrd"&gt;string&lt;/span&gt; id)&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        {&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            {&lt;span class="lnum"&gt;   5:  &lt;/span&gt;                var db = GetDB();&lt;span class="lnum"&gt;   6:  &lt;/span&gt;                db[&lt;span class="str"&gt;"testTable"&lt;/span&gt;].Remove(Query.EQ(&lt;span class="str"&gt;"_id"&lt;/span&gt;, &lt;span class="kwrd"&gt;new&lt;/span&gt; BsonObjectId(id)));&lt;span class="lnum"&gt;   7:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; RedirectToAction(&lt;span class="str"&gt;"Index"&lt;/span&gt;);&lt;span class="lnum"&gt;   8:  &lt;/span&gt;            }&lt;span class="lnum"&gt;   9:  &lt;/span&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            {&lt;span class="lnum"&gt;  11:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; View();&lt;span class="lnum"&gt;  12:  &lt;/span&gt;            }&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        }&lt;/div&gt;&lt;div class="csharpcode"&gt;Global.asax.cx也可以改回Index开始：&lt;/div&gt;&lt;div class="csharpcode"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;            routes.MapRoute(&lt;span class="lnum"&gt;   2:  &lt;/span&gt;                &lt;span class="str"&gt;"Default"&lt;/span&gt;, &lt;span class="rem"&gt;// Route name&lt;/span&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;                &lt;span class="str"&gt;"{controller}/{action}/{id}"&lt;/span&gt;, &lt;span class="rem"&gt;// URL with parameters&lt;/span&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; { controller = &lt;span class="str"&gt;"Home"&lt;/span&gt;, action = &lt;span class="str"&gt;"Index"&lt;/span&gt;, id = UrlParameter.Optional } &lt;span class="rem"&gt;// Parameter defaults&lt;/span&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;            );&lt;/div&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;搞定。&lt;/p&gt;&lt;p&gt;不用设计数据库好爽啊。。想怎么插就怎么插。。。无Schema好爽啊！Razor基本很人性化，缺点很少。&lt;/p&gt;&lt;p&gt;不过感觉MongoDB关方的Connector功力比较弱，不支持Linq也就罢了，&lt;a href="http://msdn.microsoft.com/en-us/library/z5z9kes2(v=VS.100).aspx" target="_blank"&gt;implicit&lt;/a&gt;也不实现，无法隐式转化格式，写起来很是别扭，不够流畅。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;接下来准备研究一下MongoDB的高级功能，敬请期待。&lt;/p&gt;&lt;p&gt;完整代码下载：&amp;nbsp;&lt;a href="http://files.cnblogs.com/pandora/MvcApplication1_CRUD.zip"&gt;http://files.cnblogs.com/pandora/MvcApplication1_CRUD.zip&amp;nbsp;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/pandora/aggbug/2061020.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pandora/archive/2011/05/28/MongoDB_Asp_Net_MVC3_CRUD.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pandora/archive/2011/05/26/MongoDB_On_Asp_Net_MVC_3.html</id><title type="text">MongoDB on Asp.Net MVC3</title><summary type="text">晚上闲来无事，研究了一下最近很火的MongoDB。感受只有一个：“自由”。闲话略过，先让MongoDB在Win7 64下跑起来：1. MongoDB主页http://www.mongodb.org/2. 下载http://downloads.mongodb.org/win32/mongodb-win32-x86_64-1.8.1.zip3. 解压e.g. H:\mongodb-win32-x86_64-1.8.14. 准备目录e.g. H:\mongo\data --保存数据库文件 H:\mongo\logs --保存log，在此目录下手动创建一个log.txt5. 安装Win键，输入cmd，</summary><published>2011-05-26T15:15:00Z</published><updated>2011-05-26T15:15:00Z</updated><author><name>Pandora</name><uri>http://www.cnblogs.com/pandora/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pandora/archive/2011/05/26/MongoDB_On_Asp_Net_MVC_3.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pandora/archive/2011/05/26/MongoDB_On_Asp_Net_MVC_3.html"/><content type="html">&lt;p&gt;&lt;font face="微软雅黑"&gt;晚上闲来无事，研究了一下最近很火的MongoDB。感受只有一个：&amp;#8220;自由&amp;#8221;。&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;闲话略过，先让MongoDB在Win7 64下跑起来：&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;&lt;strong&gt;1. MongoDB主页&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.mongodb.org/"&gt;&lt;font face="微软雅黑"&gt;http://www.mongodb.org/&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;&lt;strong&gt;2. 下载&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="http://downloads.mongodb.org/win32/mongodb-win32-x86_64-1.8.1.zip" href="http://downloads.mongodb.org/win32/mongodb-win32-x86_64-1.8.1.zip"&gt;&lt;font face="微软雅黑"&gt;http://downloads.mongodb.org/win32/mongodb-win32-x86_64-1.8.1.zip&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;&lt;strong&gt;3. 解压&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;e.g. H:\mongodb-win32-x86_64-1.8.1&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;&lt;strong&gt;4. 准备目录&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;e.g. H:\mongo\data --保存数据库文件 H:\mongo\logs --保存log，在此目录下手动创建一个log.txt&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;&lt;strong&gt;5. 安装&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;Win键，输入cmd，右键-Run as Administrator&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;cd H:\mongodb-win32-x86_64-1.8.1\bin&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;H:&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;mongod --bind_ip 127.0.0.1 --logpath H:\mongo\logs\log.txt --logappend --dbpath H:\mongo\data --directoryperdb &amp;#8211;install&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;net start &amp;#8220;MongoDB&amp;#8221;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;成功。&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;&lt;strong&gt;6. 测试安装&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;在之前的CMD窗口中输入：mongo&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;应该能无异常进入query界面&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;输入一个3+3，应该能得到6&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;关掉cmd，这玩意儿没用了。&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;&lt;strong&gt;7. 下载.Net Connector&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="https://github.com/mongodb/mongo-csharp-driver/archives/master" href="https://github.com/mongodb/mongo-csharp-driver/archives/master"&gt;https://github.com/mongodb/mongo-csharp-driver/archives/master&lt;/a&gt;&lt;/p&gt;&lt;p&gt;解压&lt;/p&gt;&lt;p&gt;打开CSharpDriverSetup-2010.sln&lt;/p&gt;&lt;p&gt;Build&lt;/p&gt;&lt;p&gt;失败&lt;/p&gt;&lt;p&gt;删除DriverSetup中对CHM的引用&lt;/p&gt;&lt;p&gt;重新编译，成功&lt;/p&gt;&lt;p&gt;右键DriverSetup &amp;#8211; Install&lt;/p&gt;&lt;p&gt;下一步下一步下一步。。。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;8. 创建Asp.Net MVC3 Empty project&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;若无，请自行安装MVC3的TOOL&lt;/p&gt;&lt;p&gt;&lt;strong&gt;9. Add ConnectionString in web.config&lt;/strong&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;connectionStrings&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="MongoDB"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;connectionString&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="mongodb://localhost/test"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; white-space: normal; "&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;connectionStrings&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;p&gt;&lt;strong&gt;10. Add Controller&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;Controller with empty read/write actions&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="微软雅黑"&gt;&lt;strong&gt;11. Access to the DB&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;MongoDatabase&amp;nbsp;GetDB()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;MongoDatabase.Create(ConfigurationManager.ConnectionStrings[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;MongoDB&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;].ConnectionString);&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; "&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-family: 微软雅黑; "&gt;&lt;strong&gt;12. Create Action&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; white-space: normal; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[HttpPost]&lt;/span&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;ActionResult&amp;nbsp;Create(FormCollection&amp;nbsp;collection)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;try&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;db&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;GetDB();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(var&amp;nbsp;key&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;collection.AllKeys)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;db[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;testTable&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;].Insert(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;MongoDB.Bson.BsonDocument{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{key,&amp;nbsp;collection[key]}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;RedirectToAction(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Index&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;catch&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;View();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 微软雅黑; white-space: normal; "&gt;&lt;strong&gt;13. Index Action&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;ActionResult&amp;nbsp;Index()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;try&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;db&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;GetDB();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;testTable&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;db[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;testTable&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;].FindAll();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;result&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;StringBuilder();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(var&amp;nbsp;testData&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;testTable)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(var&amp;nbsp;property&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;testData.Names)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result.AppendFormat(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{0}:{1}&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;property,&amp;nbsp;testData[property]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result.Append(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;br&amp;nbsp;/&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Content(result.ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;catch&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;View();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/font&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-family: 微软雅黑; white-space: normal; "&gt;&lt;strong&gt;14. Create Views under Views/Home/&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;Create.cshtml:&lt;/strong&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #000000;"&gt;@{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ViewBag.Title&amp;nbsp;=&amp;nbsp;"Create";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Layout&amp;nbsp;=&amp;nbsp;"~/Views/Shared/_Layout.cshtml";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;h2&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Create&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;h2&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;form&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;method&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="post"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;action&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="/Home/Create"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Name:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;input&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="name"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="text"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;br&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Age:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;input&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="age"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="text"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;br&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Gender:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;input&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="gender"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="text"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;br&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Married:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;input&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="married"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="text"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;br&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;input&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="submit"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="Add"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;form&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;strong&gt;Index.cshtml&lt;/strong&gt;&lt;strong&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #000000;"&gt;@{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ViewBag.Title&amp;nbsp;=&amp;nbsp;"Index";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Layout&amp;nbsp;=&amp;nbsp;"~/Views/Shared/_Layout.cshtml";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;h2&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Index&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;h2&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;a&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;href&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="Create"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Create&amp;nbsp;New&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;a&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-family: 微软雅黑; white-space: normal; "&gt;&lt;strong&gt;15. Modify Global.asax.cs&lt;/strong&gt;&lt;/span&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;routes.MapRoute(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Default&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Route&amp;nbsp;name&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{controller}/{action}/{id}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;URL&amp;nbsp;with&amp;nbsp;parameters&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;{&amp;nbsp;controller&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Home&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;action&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Create&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;id&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;UrlParameter.Optional&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Parameter&amp;nbsp;defaults&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 微软雅黑; white-space: normal; "&gt;&lt;strong&gt;11. Build &amp;amp; Run&lt;/strong&gt;&lt;/span&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/pandora/201105/201105262314235000.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/pandora/201105/201105262314354302.png" width="225" height="208" /&gt;&lt;/a&gt;&amp;nbsp;&lt;p&gt;Press Add&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/pandora/201105/201105262314578087.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/pandora/201105/201105262315051656.png" width="244" height="66" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;All Done. Happy and enjoy.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;补上项目下载：&lt;/p&gt;&lt;p&gt;http://files.cnblogs.com/pandora/MvcApplication1.zip&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/pandora/aggbug/2059341.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pandora/archive/2011/05/26/MongoDB_On_Asp_Net_MVC_3.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pandora/archive/2010/12/27/WebGL_Introduction_Example_Workflow.html</id><title type="text">[WebGL] 简介，流程及示例</title><summary type="text">WebGL是一个附加的渲染上下文（context），支持HTML5的canvas对象。这个上下文允许通过一种与OpenGL ES 2.0 API非常相似的API来进行图像渲染。</summary><published>2010-12-27T15:14:00Z</published><updated>2010-12-27T15:14:00Z</updated><author><name>Pandora</name><uri>http://www.cnblogs.com/pandora/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pandora/archive/2010/12/27/WebGL_Introduction_Example_Workflow.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pandora/archive/2010/12/27/WebGL_Introduction_Example_Workflow.html"/><content type="html">&lt;p&gt;WebGL是一个附加的渲染上下文（context），支持HTML5的canvas对象。这个上下文允许通过一种与OpenGL ES 2.0 API非常相似的API来进行图像渲染。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;创建WebGL上下文&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;通过使用canvas的getContext(&amp;#8220;experimental-webgl&amp;#8221;)方法来获取一个WebGLRenderingContext。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;创建Shaders&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Shaders是用来将图形信息(shape data)转换为屏幕上的像素。当使用GLSL这种shader格式时，我们会用到两种不同的shaders。&lt;/p&gt;&lt;p&gt;Vertex shader 使用在被渲染的三角形的每个顶点(corner)上。这个shader会转换点信息，传入贴图对其信息并且使用每个三角形的normals来计算光照。GLSL提供给用户一个特殊的变量gl_Position来存储经过转换的顶点信息。WebGL使用三角形每个顶点存储的信息来生成并填充其他所有需要输出的像素。贴图对齐和光照信息通过varying变量传入。&lt;/p&gt;&lt;p&gt;所有Vertex shader的信息都会传递到fragment shader中，此shader会在每个被传入的经过转换的三角形的每个点上运行，从贴图得出对应的像素，调整光照并且输出。GLSL为此定义了一个专用的变量gl_FragColor，此变量存储的信息即为像素的颜色。&lt;/p&gt;&lt;p&gt;下面这个例子说明了如何通过HTML script标签来声明vertex及fragment shader。&lt;/p&gt;&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('f348ea6e-ab10-4d44-b51f-addf45aab1fe')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_f348ea6e-ab10-4d44-b51f-addf45aab1fe" alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_f348ea6e-ab10-4d44-b51f-addf45aab1fe" onclick="cnblogs_code_hide('f348ea6e-ab10-4d44-b51f-addf45aab1fe',event)" style="display:none"&gt;&lt;div id="cnblogs_code_open_f348ea6e-ab10-4d44-b51f-addf45aab1fe" class="cnblogs_code_hide"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;script&amp;nbsp;id&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;vshader&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;type&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;x-shader/x-vertex&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uniform&amp;nbsp;mat4&amp;nbsp;u_modelViewProjMatrix;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uniform&amp;nbsp;mat4&amp;nbsp;u_normalMatrix;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uniform&amp;nbsp;vec3&amp;nbsp;lightDir;&amp;nbsp;&amp;nbsp;&amp;nbsp;attribute&amp;nbsp;vec3&amp;nbsp;vNormal;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;attribute&amp;nbsp;vec4&amp;nbsp;vTexCoord;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;attribute&amp;nbsp;vec4&amp;nbsp;vPosition;&amp;nbsp;&amp;nbsp;&amp;nbsp;varying&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;float&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;v_Dot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;varying&amp;nbsp;vec2&amp;nbsp;v_texCoord;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;main()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl_Position&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;u_modelViewProjMatrix&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;vPosition;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;v_texCoord&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;vTexCoord.st;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vec4&amp;nbsp;transNormal&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;u_normalMatrix&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;vec4(vNormal,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;v_Dot&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;max(dot(transNormal.xyz,&amp;nbsp;lightDir),&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;script&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;script&amp;nbsp;id&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;fshader&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;type&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;x-shader/x-fragment&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uniform&amp;nbsp;sampler2D&amp;nbsp;sampler2d;&amp;nbsp;&amp;nbsp;&amp;nbsp;varying&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;float&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;v_Dot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;varying&amp;nbsp;vec2&amp;nbsp;v_texCoord;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;main()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vec2&amp;nbsp;texCoord&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;vec2(v_texCoord.s,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;1.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;v_texCoord.t);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vec4&amp;nbsp;color&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;texture2D(sampler2d,&amp;nbsp;texCoord);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;vec4(&lt;/span&gt;&lt;span style="color: #000000;"&gt;0.1&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0.1&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0.1&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl_FragColor&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;vec4(color.xyz&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;v_Dot,&amp;nbsp;color.a);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;script&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;上例中的vertex shader只是简单的使用一个modelViewProjMatrix来定义如何转换vertex position，并且与vertex position即vPosition一起传给fragment shader。然后vertex shader会将贴图对齐信息vTexCoord与通过normal即vNormal生成的光照信息v_Dot一并传入fragment shader。&lt;/p&gt;&lt;p&gt;Fragment shader就更简单了。它仅仅是从贴图中得到像素信息，然后乘以通过vertex shader传入的光照信息。这使得面对我们的像素更亮，从而获得一个较为真实的光照效果。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;初始化引擎&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;我们通过以下代码可以简单的初始化一个WebGL引擎。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('06b8123d-321f-4d60-adc0-5859751bc524')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_06b8123d-321f-4d60-adc0-5859751bc524" alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_06b8123d-321f-4d60-adc0-5859751bc524" onclick="cnblogs_code_hide('06b8123d-321f-4d60-adc0-5859751bc524',event)" style="display:none"&gt;&lt;div id="cnblogs_code_open_06b8123d-321f-4d60-adc0-5859751bc524" class="cnblogs_code_hide"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000FF;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;init()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Initialize&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;gl&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;initWebGL(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;example&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;vshader&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;fshader&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;vNormal&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;vColor&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;vPosition&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;],&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;],&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;10000&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Set&amp;nbsp;some&amp;nbsp;uniform&amp;nbsp;variables&amp;nbsp;for&amp;nbsp;the&amp;nbsp;shaders&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.uniform3f(gl.getUniformLocation(gl.program,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;lightDir&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.uniform1i(gl.getUniformLocation(gl.program,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;sampler2d&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Create&amp;nbsp;a&amp;nbsp;box.&amp;nbsp;On&amp;nbsp;return&amp;nbsp;'gl'&amp;nbsp;contains&amp;nbsp;a&amp;nbsp;'box'&amp;nbsp;property&amp;nbsp;with&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;the&amp;nbsp;BufferObjects&amp;nbsp;containing&amp;nbsp;the&amp;nbsp;arrays&amp;nbsp;for&amp;nbsp;vertices,&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;normals,&amp;nbsp;texture&amp;nbsp;coords,&amp;nbsp;and&amp;nbsp;indices.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.box&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;makeBox(gl);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Load&amp;nbsp;an&amp;nbsp;image&amp;nbsp;to&amp;nbsp;use.&amp;nbsp;Returns&amp;nbsp;a&amp;nbsp;WebGLTexture&amp;nbsp;object&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;spiritTexture&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;loadImageTexture(gl,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;resources/spirit.jpg&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Create&amp;nbsp;some&amp;nbsp;matrices&amp;nbsp;to&amp;nbsp;use&amp;nbsp;later&amp;nbsp;and&amp;nbsp;save&amp;nbsp;their&amp;nbsp;locations&amp;nbsp;in&amp;nbsp;the&amp;nbsp;shaders&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.mvMatrix&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;CanvasMatrix4();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.u_normalMatrixLoc&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;gl.getUniformLocation(gl.program,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;u_normalMatrix&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.normalMatrix&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;CanvasMatrix4();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.u_modelViewProjMatrixLoc&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;gl.getUniformLocation(gl.program,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;u_modelViewProjMatrix&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.mvpMatrix&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;CanvasMatrix4();&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Enable&amp;nbsp;all&amp;nbsp;of&amp;nbsp;the&amp;nbsp;vertex&amp;nbsp;attribute&amp;nbsp;arrays.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.enableVertexAttribArray(&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.enableVertexAttribArray(&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.enableVertexAttribArray(&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Set&amp;nbsp;up&amp;nbsp;all&amp;nbsp;the&amp;nbsp;vertex&amp;nbsp;attributes&amp;nbsp;for&amp;nbsp;vertices,&amp;nbsp;normals&amp;nbsp;and&amp;nbsp;texCoords&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.bindBuffer(gl.ARRAY_BUFFER,&amp;nbsp;gl.box.vertexObject);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.vertexAttribPointer(&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;gl.FLOAT,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.bindBuffer(gl.ARRAY_BUFFER,&amp;nbsp;gl.box.normalObject);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.vertexAttribPointer(&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;gl.FLOAT,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.bindBuffer(gl.ARRAY_BUFFER,&amp;nbsp;gl.box.texCoordObject);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.vertexAttribPointer(&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;gl.FLOAT,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Bind&amp;nbsp;the&amp;nbsp;index&amp;nbsp;array&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,&amp;nbsp;gl.box.indexObject);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;gl;&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;initWebGL()方法接受以下的参数：&lt;/p&gt;&lt;p&gt;&amp;#8220;example&amp;#8221; &amp;#8211; canvas元素的Id&lt;/p&gt;&lt;p&gt;&amp;#8220;vshader&amp;#8221;，"fshader" &amp;#8211; vertex/fragment shader对应的Id&lt;/p&gt;&lt;p&gt;&amp;#8220;vNormal&amp;#8221;, &amp;#8220;vColor&amp;#8221;, &amp;#8220;vPosition&amp;#8221; &amp;#8211; 定义vertex shader属性的名称&lt;/p&gt;&lt;p&gt;[0,0,0,1],10000 - 底色与深度信息&lt;/p&gt;&lt;p&gt;上面这段初始化代码加在了shaders并且将其传入一个定义了shader接口信息的GLSL程序。shader上的uniform参数用来存储不会变化的值；vertex属性用来存储会发生变化的值，例如顶点。这段代码也告诉WebGL通过makeBox()方法来生成顶点，光照和贴图信息。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;设置观察点&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;在渲染之前，我们必须告诉canvas如何在模型空间和屏幕空间之间映射对象。在最开始，一个对象的位置信息被描述为模型，而本地信息描述了对象的形状。这两个信息将会被转换为其他信息：&lt;/p&gt;&lt;p&gt;&lt;strong&gt;MODELING COORDINATES -&amp;gt;&amp;gt; WORLD COORDINATES -&amp;gt;&amp;gt; VIEW COORDINATES -&amp;gt;&amp;gt; VIEWPORT COORDINATES&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;简单的说，就是将模型信息转换为通过世界来描述的信息（世界包含了所有需要渲染的对象）。然后通过设置观察点，即你从哪里观看这个世界来生成观察点信息，也就是最终渲染在屏幕上的像素点（再次步骤会进行3D至2D的转换。canvas只能显示2D信息。）。&lt;/p&gt;&lt;p&gt;我们会使用转换矩阵(transformation matrix)来完成从一个coordinates到下一个的转换。在上例中，从modeling coordinates到view coordinates的转换使用过model-view matrix进行的，这个matrix合并了modeling-&amp;gt;world, world-&amp;gt;view两个步骤。然后通过透视矩阵pMatrix来进行最后一步view-&amp;gt;viewport的转换。透视矩阵在reshape()方法中生成并存储到转换流水线的最后。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('fc4a5782-9303-4ec1-a5f8-a6aca64ddb9b')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_fc4a5782-9303-4ec1-a5f8-a6aca64ddb9b" alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_fc4a5782-9303-4ec1-a5f8-a6aca64ddb9b" onclick="cnblogs_code_hide('fc4a5782-9303-4ec1-a5f8-a6aca64ddb9b',event)" style="display:none"&gt;&lt;div id="cnblogs_code_open_fc4a5782-9303-4ec1-a5f8-a6aca64ddb9b" class="cnblogs_code_hide"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000FF;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;reshape(gl)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;canvas&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;document.getElementById(&lt;/span&gt;&lt;span style="color: #000000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;example&lt;/span&gt;&lt;span style="color: #000000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(canvas.clientWidth&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;width&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;canvas.clientHeight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;height)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;width&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;canvas.clientWidth;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;canvas.clientHeight;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Set&amp;nbsp;the&amp;nbsp;viewport&amp;nbsp;and&amp;nbsp;projection&amp;nbsp;matrix&amp;nbsp;for&amp;nbsp;the&amp;nbsp;scene&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.viewport(&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;width,&amp;nbsp;height);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.perspectiveMatrix&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;CanvasMatrix4();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.perspectiveMatrix.lookat(&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;7&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.perspectiveMatrix.perspective(&lt;/span&gt;&lt;span style="color: #000000;"&gt;30&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;width&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;height,&amp;nbsp;1,&amp;nbsp;10000);&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;绘制立方体&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;经过上述步骤，我们已经可以最终绘制了。我们要求在最终效果中，我们的立方体是可以转动的。我们应该在model-view matrix中加入这个操作，因为正是在这个转换矩阵中生成了在哪里和哪个角度来显示立方体。然后我们把model-view矩阵与透视矩阵相乘来完成所有步骤。请注意因为矩阵的相乘是不符合交换律的，所以顺序很重要。你也可以把一个model-view矩阵变为光照矩阵，这样你就能为此立方体得到合适的光照：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('ffb6a9e8-0a9b-4710-be78-aca1779ae4c8')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_ffb6a9e8-0a9b-4710-be78-aca1779ae4c8" alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_ffb6a9e8-0a9b-4710-be78-aca1779ae4c8" onclick="cnblogs_code_hide('ffb6a9e8-0a9b-4710-be78-aca1779ae4c8',event)" style="display:none"&gt;&lt;div id="cnblogs_code_open_ffb6a9e8-0a9b-4710-be78-aca1779ae4c8" class="cnblogs_code_hide"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000FF;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;drawPicture(gl)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;Make&amp;nbsp;sure&amp;nbsp;the&amp;nbsp;canvas&amp;nbsp;is&amp;nbsp;sized&amp;nbsp;correctly.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reshape(gl);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Clear&amp;nbsp;the&amp;nbsp;canvas&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.clear(gl.COLOR_BUFFER_BIT&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;|&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;gl.DEPTH_BUFFER_BIT);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Make&amp;nbsp;a&amp;nbsp;model/view&amp;nbsp;matrix.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.mvMatrix.makeIdentity();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.mvMatrix.rotate(currentAngle,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.mvMatrix.rotate(&lt;/span&gt;&lt;span style="color: #000000;"&gt;20&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Construct&amp;nbsp;the&amp;nbsp;normal&amp;nbsp;matrix&amp;nbsp;from&amp;nbsp;the&amp;nbsp;model-view&amp;nbsp;matrix&amp;nbsp;and&amp;nbsp;pass&amp;nbsp;it&amp;nbsp;in&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.normalMatrix.load(gl.mvMatrix);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.normalMatrix.invert();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.normalMatrix.transpose();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.uniformMatrix4fv(gl.u_normalMatrixLoc,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;gl.normalMatrix.getAsWebGLFloatArray());&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Construct&amp;nbsp;the&amp;nbsp;model-view&amp;nbsp;*&amp;nbsp;projection&amp;nbsp;matrix&amp;nbsp;and&amp;nbsp;pass&amp;nbsp;it&amp;nbsp;in&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.mvpMatrix.load(gl.mvMatrix);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.mvpMatrix.multRight(gl.perspectiveMatrix);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.uniformMatrix4fv(gl.u_modelViewProjMatrixLoc,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;gl.mvpMatrix.getAsWebGLFloatArray());&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Bind&amp;nbsp;the&amp;nbsp;texture&amp;nbsp;to&amp;nbsp;use&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.bindTexture(gl.TEXTURE_2D,&amp;nbsp;spiritTexture);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Draw&amp;nbsp;the&amp;nbsp;cube&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.drawElements(gl.TRIANGLES,&amp;nbsp;gl.box.numIndices,&amp;nbsp;gl.UNSIGNED_BYTE,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Finish&amp;nbsp;up.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gl.flush();&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Show&amp;nbsp;the&amp;nbsp;framerate&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;framerate.snapshot();&amp;nbsp;&amp;nbsp;&amp;nbsp;currentAngle&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;incAngle;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(currentAngle&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;360&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;currentAngle&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;-=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;360&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;最终，我们完成了这个例子。生成了一个带贴图的持续旋转的立方体。相信你已经可以通过这个例子完整的理解WebGL的工作模式与步骤。个人感觉还是非常简明易用的。&lt;/p&gt;&lt;p&gt;&lt;a href="https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/demos/webkit/SpiritBox.html" target="_blank"&gt;在线欣赏此例子&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;WebGL的支持现状&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;在最新版的Apple WebKit / Google Chrome / Mozilla Firfox / Opera中，均对WebGL提供了支持。但此标准依然是draft状态，各浏览器的支持也仅处于测试阶段，并不完整。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/pandora/aggbug/1918392.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pandora/archive/2010/12/27/WebGL_Introduction_Example_Workflow.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pandora/archive/2010/12/12/1904032.html</id><title type="text">2010 Web前端技术趋势及总结</title><summary type="text">经过这段时间国内（百度，淘宝，新浪）及国外（Facebook，Youtube，Yahoo）各大公司的集中自曝，我们可以从中总结出2010 Web前端技术的一些趋势。总的来说，随着后端技术（存储，并发，分布式）的成熟，各大公司已经把重点从后端架构调整/建设转移至前端（TTI时间，快速发布，带宽利用率）。但作为明星技术的HTML5/CSS3，都未正式成为各公司的考虑重心，虽有所尝试，但在关键功能上，均...</summary><published>2010-12-12T15:33:00Z</published><updated>2010-12-12T15:33:00Z</updated><author><name>Pandora</name><uri>http://www.cnblogs.com/pandora/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pandora/archive/2010/12/12/1904032.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pandora/archive/2010/12/12/1904032.html"/><content type="html">&lt;p&gt;经过这段时间国内（百度，淘宝，新浪）及国外（Facebook，Youtube，Yahoo）各大公司的集中自曝，我们可以从中总结出2010 Web前端技术的一些趋势。总的来说，随着后端技术（存储，并发，分布式）的成熟，各大公司已经把重点从后端架构调整/建设转移至前端（TTI时间，快速发布，带宽利用率）。但作为明星技术的HTML5/CSS3，都未正式成为各公司的考虑重心，虽有所尝试，但在关键功能上，均未成为主力。这也W3C对当前HTML5/CSS3标准现状的表述：&amp;#8220;不适宜用作生产环境&amp;#8221;一致。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;基本概念&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Web前端技术的范围&lt;/p&gt; &lt;p&gt;1. 编程语言/技术（HTML，JavaScript，CSS等）&lt;/p&gt; &lt;p&gt;2. 跨浏览器兼容性/支持（JS Framework，CSS Library）&lt;/p&gt; &lt;p&gt;3. 网络传输性能（并行下载，带宽利用率）&lt;/p&gt; &lt;p&gt;4. 浏览器渲染时间/性能（TTI即用户可交互前等待时间，JS执行性能）&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;今年就我个人的感觉，Facebook无疑又成为了技术上的明星，在大家还在感慨其对于PHP的重大改进&lt;a href="http://developers.facebook.com/blog/post/358" target="_blank"&gt;HipHop&lt;/a&gt;(Blocked inside China mainland)的时候，今年Facebook又在前端技术方面给大家带来了惊喜。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Facebook面临的问题&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;500M（Million）注册用户，50%每天至少访问一次，用户平均每日在线时间为5小时25分钟。带宽及服务器压力均很大。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Facebook的解决方案&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Quickling&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Facebook提出了一个新名词Ajaxify，顾名思义，就是将传统的POST/GET转换为Ajax请求。优点显而易见，首先减少了不必要的HTML传输，只请求和渲染页面需要更新的部分，这就相应减少了所需传输的内容加快了内容送达至用户的时间。并且也减少了服务端对HTML的不必要的渲染。Facebook也提到了可以减少session的重复load/unload。&lt;/p&gt; &lt;p&gt;使用Ajax也许不是什么新鲜的新闻，大家拒绝这项技术的原因可能很大程度基于SEO的需求。解决方案也很简单，将Ajax只是作为提高用户体验的手段，而不是浏览网站必须的方法，即可解决SEO的问题（P.S. Facebook不需要SEO）。&lt;/p&gt; &lt;p&gt;一些实现细节：&lt;/p&gt; &lt;p&gt;整套方案包括：Link Controller, HistoryManager, BootLoader, Busy Indicator, CSS Unloading, Permanent link support, Resetting timer functions。这些方案本身没有什么特殊的，大部分都可以顾名思义，需要解释一下的可能是link controller，其含义是将标准的HTML LINK请求转换为Ajax请求（通过绑定click事件）。Facebook的可贵之处是提供了这一整套完整的解决方案，最大程度上保证了网站的可用性。&lt;/p&gt; &lt;p&gt;效果：&lt;/p&gt; &lt;p&gt;提高了10%-30% 的网站传输时间，并提高了20%-30%的服务端页面渲染速度。&lt;/p&gt; &lt;p&gt;使用范围：&lt;/p&gt; &lt;p&gt;45%的Facebook页面使用了此项技术。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;PageCache&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;简单的说，就是将访问过的页面缓存在客户端。但我们知道，作为Facebook这样交互性很强的网站，需要保障用户能尽早的获得更新后的信息，而不是给用户展示一个毫无意义的过期页面。&lt;/p&gt; &lt;p&gt;Facebook设计了一个框架来识别一个页面是否来自于缓存（猜测：页面首次加载完毕后将所有Ajax的Callback和Result缓存在本地。Facebook页面是基于Ajax获取页面内容，参见BigPipe），若来自于缓存，通过Ajax来更新所需更新的模块（猜测：通过JS预先定义本页面所需更新的div Id及对应的callback handler，并在页面下载时同时下载下来）。&lt;/p&gt; &lt;p&gt;其提到了三种更新类型：增量更新，用户复写（例如用户在页面上回复了一则评论）及跨页更新（例如在消息详细页面将一则消息标识为已读，需将首页的未读消息数进行更新。）。核心思路还是依据Ajax进行更新。具体思路为：&lt;/p&gt; &lt;p&gt;增量更新：只要页面来自于缓存，即更新所有预定义的需增量更新的模块。&lt;/p&gt; &lt;p&gt;用户复写：通过HistoryManager记录用户操作并在cache页面读取后重放所有被标记为&amp;#8220;replayable&amp;#8221;的操作。&lt;/p&gt; &lt;p&gt;跨页更新：通过服务端Database API发送信号至客户端将过期缓存标识为invalid（不清楚如何实现。也许是DB端提供一个开放的webservice，客户端通过Ajax持续访问此API来获得此信息）。获得了缓存过期信号后，通过Ajax更新需要更新的信息。&lt;/p&gt; &lt;p&gt;Facebook顺带提到了一个更新Ajax内容避免页面变化/闪烁的小技巧，就是先将需更新的地方设置为blank，而非直接更新其内容。&lt;/p&gt; &lt;p&gt;效果：&lt;/p&gt; &lt;p&gt;加速了10倍的网站响应时间并节约了20%的服务端页面渲染成本。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;BigPipe&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;此项技术通过将页面分割为各个Pagelets的方式，将整张页面的获取/渲染变成了并行的方式（感觉非常像iframe sets，但Facebook使用Ajax实现。）。此项技术是Quickling和PageCache的基石。此技术包含了服务端/客户端两方面，在前后端均打破了以往页面的渲染形式。&lt;/p&gt; &lt;p&gt;实现细节：&lt;/p&gt; &lt;p&gt;Pagelet的Response为JSON格式，包括id,css,js,content,onload等属性及相应内容，收到后会通过预定义好的JS function来进行渲染。&lt;/p&gt; &lt;p&gt;Pagelet提供的高级功能：Pagelet的继承，Phased Rendering（猜测：依据规则渲染，也就是依据Pagelet的Response进行渲染），跨Pagelet依赖（数据依赖，显示依赖，JS依赖）。&lt;/p&gt; &lt;p&gt;BigPipe的三种模式：&lt;/p&gt; &lt;p&gt;一次渲染模式：即普通模式，支持搜索引擎，用来支持那些不支持JS的客户端。&lt;/p&gt; &lt;p&gt;管线模式：即并行模式，并行请求，并即时渲染。&lt;/p&gt; &lt;p&gt;并行模式：并行请求，但在获得所有请求的结果后再渲染。&lt;/p&gt; &lt;p&gt;效果：&lt;/p&gt; &lt;p&gt;提高了2倍的页面响应时间。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;YouTube面临的问题&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;每天2Billion的访问。每分钟上传35小时的内容。可YouTube需要即时播放视频！越快越好。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;YouTube解决方案&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;1. 将JS引用位置从页首移至页尾。&lt;/p&gt; &lt;p&gt;2. 直接嵌入Flash Player（YouTube之前使用JS来加载Flash Player）。通过页尾的JS来判断客户端的Flash版本（或不支持Flash），来替换预先嵌入的Flash Player或内容（如果需要的话），用来支持特定的客户群。&lt;/p&gt; &lt;p&gt;效果：页面渲染时间从～400ms降低为～200ms。Flash播放时间从～1200ms降低为～1100ms。&lt;/p&gt; &lt;p&gt;3. 预加载视频连接： 通过使用JS创建Image引用视频内容来与解析DNS并预开启一个connection供之后使用。&lt;/p&gt; &lt;p&gt;效果：建立视频连接的总时间从～260ms降低为～180ms。&lt;/p&gt; &lt;p&gt;4. 提供简化版： 这个很无聊，就是提供一个简版。&lt;/p&gt; &lt;p&gt;效果：页面加载时间从～1750ms降低为～1100ms。&lt;/p&gt; &lt;p&gt;5. UIX Widget系统：延迟加载非关键内容。其实整段没什么新意，大部分省略，无非是通过Ajax在页面渲染完后再来动态加载非关键内容。比较特别的是利用JS的事件冒泡，在最上层用一个handler来处理各种事件（优点不详。。也许只是代码比较简洁集中吧），通过CSS来标识和识别对应的handler。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Yahoo Mail&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Yahoo如何构建下一代的Mail系统？答案就是通过YUI3。Yahoo的技术绝对是最优的，其已经将web前端技术发展到一个非常成熟的地步，照顾到web的方方面面（数据压缩，模块化，高效CSS，非阻碍式JS加载，静态内容提供，利用浏览器cache等等），所以也鲜有创新了。某种程度上来说，Facebook的一些所谓创新也不过是后知后觉，Yahoo早已考虑并实现了这些方案，只是也许不是那么有针对性而已。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Baidu&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;感觉整体倾向于组织结构介绍及一些比较过时的内容。如有兴趣可移驾至&lt;a href="http://v.youku.com/v_show/id_XMjE5OTM0NTA4.html"&gt;http://v.youku.com/v_show/id_XMjE5OTM0NTA4.html&lt;/a&gt; 自行观赏。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Taobao&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;div&gt;http://www.docin.com/p-54097869.html 没有什么特别值得一提的内容。需要的同学可自行观赏。&lt;/div&gt;&lt;/p&gt; &lt;p&gt;相反的，淘宝的精益测试倒是引起了我的兴趣，出自微软的淘宝员工鹤云讲述了淘宝是如何进行CI（持续集成）的。有一些经验例如代码覆盖率测试也给人一些启发。感兴趣的同学可移驾至&lt;a href="http://www.infoq.com/cn/presentations/hy-tabao-lean-test"&gt;http://www.infoq.com/cn/presentations/hy-tabao-lean-test&lt;/a&gt; 观赏。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;新浪博客&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;也是一些组织架构，开发方式的内容。介绍了一下新浪自己的JS框架。并无太多亮点。有兴趣的移驾&lt;a href="http://v.youku.com/v_show/id_XMjE5OTYzMTI4.html"&gt;http://v.youku.com/v_show/id_XMjE5OTYzMTI4.html&lt;/a&gt; 自行观赏。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;大概就总结了这么多吧，感觉还是国外在主导。国内也在越来越重视这个方向，一些有实力的企业也做出了一些成绩，但还是与国际潮流有差距，也许是重视程度的区别吧。&lt;/p&gt; &lt;p&gt;欢迎大家补充讨论。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/pandora/aggbug/1904032.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pandora/archive/2010/12/12/1904032.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pandora/archive/2010/09/02/1816012.html</id><title type="text">转载 - 杂念0828</title><summary type="text">原文链接：http://firecacada.blog.163.com/blog/static/7074376201072894439630 作者：纯银忍了半天还是没忍住。转了。感觉跟我的状态太像了。看完之后舒服了很多。1、近日 好久没写杂念系列了，也许是因为太忙，忙到心中没有杂念吧。最近三个月的精神状态很糟糕，四年来最差，而且是一天比一天更差。烦躁，抑郁，孤独，易怒，一点点小挫折就会搞得情绪低落...</summary><published>2010-09-02T06:44:00Z</published><updated>2010-09-02T06:44:00Z</updated><author><name>Pandora</name><uri>http://www.cnblogs.com/pandora/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pandora/archive/2010/09/02/1816012.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pandora/archive/2010/09/02/1816012.html"/><content type="html">&lt;p&gt;原文链接：http://firecacada.blog.163.com/blog/static/7074376201072894439630 &lt;/p&gt;&lt;p&gt;作者：&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; line-height: normal; font-size: 13px; border-collapse: collapse; color: #666666; "&gt;纯银&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;忍了半天还是没忍住。转了。感觉跟我的状态太像了。看完之后舒服了很多。&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;1、近日&lt;/p&gt; &lt;span class="Apple-style-span" style="font-family: arial, sans-serif; line-height: normal; border-collapse: collapse; font-size: 13px; "&gt;好久没写杂念系列了，也许是因为太忙，忙到心中没有杂念吧。&lt;br /&gt;&lt;br /&gt;最近三个月的精神状态很糟糕，四年来最差，而且是一天比一天更差。烦躁，抑郁，孤独，易怒，一点点小挫折就会搞得情绪低落。独自工作的时候注意力不容易集中，只有在开会时才能保持正常&amp;#8212;&amp;#8212;人越多越活跃，被扎了两针似的。一个人的时候则沮丧消沉。&lt;br /&gt;&lt;br /&gt;究其原因，并不能归于工作疲劳或目标压力，更多是长期以来积压的孤独感作祟。有时候想，我是否更适合一支狂热的的创业团队呢？4年前贪慕虚荣加入门户，是否是个错误？&lt;br /&gt;&lt;br /&gt;摇摇头，人生没有这么多假设。&lt;br /&gt;&lt;br /&gt;我身上有很多与所谓&amp;#8220;领袖气质&amp;#8221;截然相反的特点。比如情绪化，过于敏感而不够强韧，缺乏足够的魄力与感染力。简单来说，8年管理工作对我的改造还是敌不过与生俱来的书生气。也许更适合放在一队管理组合里做二把手、三把手一类的角色。&lt;br /&gt;&lt;br /&gt;也许我只是需要放一个长假。&lt;br /&gt;&lt;br /&gt;最近在跟两个产品项目，时间进度都很紧，下个月和四季度分别发布两次。除了国庆之外，今年别说休长假，连续休半周假都不可能。这意味着我的抑郁状态还将持续半年之久，叹口气。&lt;br /&gt;&lt;br /&gt;06年去稻城，徒步上青蛙海，在1米宽，50度倾斜，又窄又陡的山路上爬了两个小时，从海拔3900米到4500米，累得快要死在路上。最后藏族向导说，到了，翻过前面那个坡就到了。说完健步如飞就冲了出去。我在原地喘了10分钟，抬头一看，眼泪都快流下来。他正站在远方的一个山脊上，小小的身影向我挥手示意。当时真以为自己一步都走不动了，完了，我放弃算了。结果还是一步十喘地蹭到了青蛙海边。那是一个群山环绕的高山湖泊，湖水被五颜六色的艳丽的高山草甸包围着，一个人影都没有，风很大，很适合发呆。&lt;br /&gt;&lt;br /&gt;把泡泡名字改成了&amp;#8220;青蛙海&amp;#8221;，你懂的。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2、抓重点&lt;/strong&gt;&lt;br /&gt;说我傲慢也好，愚钝也好，反正是很少从身边的人那里学什么东西。工作这么多年，主要靠自己摸索经验。但这半年从boss身上领教了一样宝贵的技能：抓重点。&lt;br /&gt;&lt;br /&gt;这三个字说出来是不是很可笑？&lt;br /&gt;&lt;br /&gt;知易行难。&lt;br /&gt;&lt;br /&gt;抓重点的意思是，很快从千头万绪之中，找出决定成败的关键点所在，而不被旁枝末节所迷惑。尤其是不被自诩为专业人士的产品完美主义所迷惑。一款产品有300个细节，但可能只有20人的团队。对投入产出比，边际效应，需求突破口进行评估，把任务优先级划分清楚，就是一个产品经理的核心能力。&lt;br /&gt;&lt;br /&gt;做产品，前期有三个关键环节。第一是确定目标，第二是描绘框架，第三是抓住重点。目标代表着正确的方向，框架代表着有效的策略与清晰的流程，重点代表着合理的资源分配。大到一整个产品，小到单个模块策划，都适用于这个道理。正如我近期状态不佳，但依然能推动两个项目，很大程度上得益于对重点的把握，不会事无巨细地投入进去。当然这不是刚修炼出来的技能，但最近半年确有较大的提高，算是来到杭研的意外收获，感谢boss。&lt;br /&gt;&lt;br /&gt;产品设计有两派，一派以马化腾为代表，讲究细腻的产品细节改进；一派以周鸿祎为代表，追求搔到用户的痒处。其实都在强调用户体验，但马派偏学院，偏重于全面提升；周派偏实用，偏重于抓住要点。我当然倾向于后者。不过，如果自己投入到一线策划中去，有时也会在无关紧要的细节上与人纠缠不清。这是性格缺陷，很难改，必须退后一步，静观全局的时候才有清醒的判断。只是退后一步谈何容易？怕是退无可退，唉，人生常入困局。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3、中年危机&lt;/strong&gt;&lt;br /&gt;快满34岁的时候，终于体会到传说中的中年危机。大抵是失败者与无趣者对命运的哀鸣罢了。&lt;br /&gt;&lt;br /&gt;我的经历比较特殊，4岁上小学，18岁大学毕业，至今已工作15年。正常人入世这么长时间，已是37岁的高龄，而我仔细对比公司里的新同学，发觉自己还残留了颇多25岁的少年意气，即便努力掩饰也常常遮盖不住，任性地拖在身后。&lt;br /&gt;&lt;br /&gt;青春之光终将消逝殆尽，令人恐惧的中年人疲惫的面容，也渐渐浮出在曾经的娃娃脸上。34岁的身体与34岁的压力，不断提示你活力四射已成追忆，路越走越窄，人生的选择越来越少。所谓理想与追求这种东西，逐个破灭，唯有对自己的失望越积越厚，总有一天会厚到像其他同龄人那样呆滞麻木的境地吗？像包裹着旧梦的茧。只好将希望都寄托在儿女的身上。然而我却是一枚丁克。&lt;br /&gt;&lt;br /&gt;从23岁离开检察院，直到30岁，我的职业生涯每两年都会上升一个台阶。那时总是很担心有一天驻步不前&amp;#8212;&amp;#8212;不幸而言中。在现在这家公司的四年里原地踏步，倒不完全是职位薪水之类，确实也没拿出什么耀眼的业绩来。我曾经归咎于自己心气浮躁，四年不到换了三个部门，但静下来想想，即便我从虫洞穿越到四年前做同样的事情，以现在的经验再来一次，力战不退，难道就会有个理想结局吗？&lt;br /&gt;&lt;br /&gt;妄想。&lt;br /&gt;&lt;br /&gt;也不必解释。&lt;br /&gt;&lt;br /&gt;在年轻的互联网行业，如果27岁之前没做到经理，30岁之前没做到总监，35岁之前没做到大公司的高级总监或中型公司的VP，则后继乏力。根本不存在&amp;#8220;大器晚成&amp;#8221;这么一说。晚熟只意味着腐烂。&lt;br /&gt;&lt;br /&gt;我最近不断问自己，是不是应该放弃对功名的拼命追逐（反正追不到），换成其他的精神追求，让自己好过一点，至少让工作之外的时间好过一点。可能这也是中年危机的一个变种，即绝望中的自救。当你发现愿望愈发遥远，而生活又愈发无趣时，已经很难踏上另一条崭新的职业道路。只能尝试着改变人生目标&amp;#8212;&amp;#8212;从庸俗的到不庸俗的，从被承认到自得其乐。&lt;br /&gt;&lt;br /&gt;然而能做到这一点的人，几希。&lt;br /&gt;&lt;br /&gt;7年前，我还算是一个挺有生活情趣的文艺青年。其后背井离乡，放弃了生活中的诸多乐趣，也放弃了自己的文学天赋，只为了&amp;#8220;出人头地&amp;#8221;。结果7年来只得&amp;#8220;乏善可陈&amp;#8221;四个汉字。我总是希望自己能做到正直、单纯、清秀、才华横溢、功勋卓著、名利双收、颇受人尊重尤其受女人爱慕，人到中年，却只拥有最廉价的正直与单纯（始终如一），甚至连其他曾拥有的都已失去。对未来不再期待并充满无力感，不再幻想，不再哄骗自己明天会更好。你知道的，明天和今天一样糟糕，一样乏味。你都知道的。&lt;br /&gt;&lt;br /&gt;人生是一个令人困惑的哲学问题。你总想追求天底下一切美好的东西，总是自我暗示，以为它们即便不是触手可及，也在不远的未来乖乖等着自己。直到有一天，忽然对自己大喊大叫：Liar！Loser！傻逼，你完了！&lt;br /&gt;&lt;br /&gt;然后你又安静下来，小声对自己说：瞧，大家不都这样吗？人生不总是这样吗？洗洗睡吧。&lt;br /&gt;&lt;br /&gt;天下风云出我辈，一入江湖岁月催。 皇图霸业谈笑中，不胜人生一场醉。&lt;/span&gt;&lt;img src="http://www.cnblogs.com/pandora/aggbug/1816012.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pandora/archive/2010/09/02/1816012.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pandora/archive/2010/09/01/FSharp_RecFunction.html</id><title type="text">【F#2.0系列】定义递归函数</title><summary type="text">定义递归函数简单的说，就是使用rec前缀：众所周知，上例是一个阶乘函数。使用rec前缀使得其可以使用其定义本身。基于区分递归函数与非递归函数的考虑，函数本身默认不可递归调用，这会帮助你控制算法逻辑和增加代码可维护性。上例可以形象的表示为：很多方法都可以使用递归调用的方式编写。例如List.length：有时递归也会在流程控制上使用，例如下述代码会持续的获取HTML代码，并且输出到屏幕上：递归很强大...</summary><published>2010-09-01T09:36:00Z</published><updated>2010-09-01T09:36:00Z</updated><author><name>Pandora</name><uri>http://www.cnblogs.com/pandora/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pandora/archive/2010/09/01/FSharp_RecFunction.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pandora/archive/2010/09/01/FSharp_RecFunction.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;font class="Apple-style-span" face="宋体"&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;定义递归函数&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;简单的说，就是使用&lt;/span&gt;rec&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;前缀：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; let rec factorial n = if n &amp;lt;= 1 then 1 else n * factorial (n-1);;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val factorial : int -&amp;gt; int&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; factorial 5;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : int = 120&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;众所周知，上例是一个阶乘函数。使用&lt;/span&gt;rec&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;前缀使得其可以使用其定义本身。基于区分递归函数与非递归函数的考虑，函数本身默认不可递归调用，这会帮助你控制算法逻辑和增加代码可维护性。&lt;/span&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;上例可以形象的表示为：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;factorial 5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;= 5 * factorial 4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;= 5 * (4 * factorial 3)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;= 5 * (4 * (3 * factorial 2))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;= 5 * (4 * (3 * (2 * factorial 1)))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;= 5 * (4 * (3 * (2 * 1)))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;= 5 * (4 * (3 * 2))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;= 5 * (4 * 6)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;= 5 * 24&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;span style="font-size:12.0pt;color:black"&gt;= 120&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;很多方法都可以使用递归调用的方式编写。例如&lt;/span&gt;List.length&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let rec length l =&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;match l with&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| [] -&amp;gt; 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| h :: t -&amp;gt; 1 + length t&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;有时递归也会在流程控制上使用，例如下述代码会持续的获取&lt;/span&gt;HTML&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;代码，并且输出到屏幕上：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let rec repeatFetch url n =&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if n &amp;gt; 0 then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;let html = http url&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;printfn "fetched &amp;lt;&amp;lt;&amp;lt; %s &amp;gt;&amp;gt;&amp;gt; on iteration %d" html n&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;repeatFetch url (n-1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;递归很强大，但不是一个理想的方式。例如，我们可以使用&lt;/span&gt;loop&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;来代替递归，并且可以尽量使用&lt;/span&gt;List.map&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;和&lt;/span&gt;Array.map&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;来替代&lt;/span&gt;loop&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;使用递归也要注意结束条件。&lt;/span&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;我们可以使用&lt;/span&gt;and&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;连续定义多个递归函数，这称为互助递归函数&lt;/span&gt;(mutuallyrecursive functions)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;。例如：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let rec even n = (n = 0u) || odd(n-1u)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;span style="font-size:12.0pt;color:black"&gt;and&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;odd n = (n &amp;lt;&amp;gt; 0u) &amp;amp;&amp;amp; even(n-1u)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;会得到一下的类型：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val even : uint32 -&amp;gt; bool&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val odd : uint32 -&amp;gt; bool&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;当然，更有效率的实现方式如下：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let even (n:uint32) = (n % 2u) = 0u&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let odd&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp; &lt;/span&gt;(n:uint32) = (n % 2u) = 1u&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;有时候你必须确保递归函数为尾递归&lt;/span&gt;(tailrecursive)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;，否则在处理大数据的时候会超出堆栈的处理能力。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;函数类型的值&lt;/span&gt;(FunctionValues)&lt;/strong&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;看一个示例：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; let sites = [ "http://www.live.com";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"http://www.google.com" ];;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val sites : string list&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; let fetch url = (url, http url);;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val fetch : string -&amp;gt; string * string&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; List.map fetch sites;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : (string * string) list&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;= [ ("http://www.live.com", "&amp;lt;html&amp;gt;...&amp;lt;/html&amp;gt;");&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;em&gt;("http://www.google.com", "&amp;lt;html&amp;gt;...&amp;lt;/html&amp;gt;"); ]&lt;/em&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;程序简明易懂，就是获取了&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;中所有网址的&lt;/span&gt;html&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;，并且输出成元组&lt;/span&gt;(tuple)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的形式。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;使用匿名函数类型的值&lt;/span&gt;(anonymousfunction value)&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;简单的说，就是使用&lt;/span&gt;fun&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;关键字：&lt;/span&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border-top:solid windowtext 1.0pt;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;mso-border-top-alt:solid windowtext .75pt;mso-border-bottom-alt:solid windowtext .75pt;padding:1.0pt 0cm 1.0pt 0cm"&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let resultsOfFetch = List.map (fun url -&amp;gt; (url, http url)) sites&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;如有多个参数：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; List.map (fun (_,p) -&amp;gt; String.length p) resultsOfFetch;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : int list = [3932; 2827 ]&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;值得注意的是，上例中的匿名函数接受一个元组&lt;/span&gt;(tuple)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的值，并且只关心第二个参数&lt;/span&gt;p&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;。使用&lt;/span&gt;&amp;#8217;_&amp;#8217;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;来表示不关心第一个参数的值。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;使用聚集操作符&lt;/span&gt;(AggregateOperators)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;计算&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;例如&lt;/span&gt;List.map&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;就被称为一个聚集操作符。看一个例子：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let delimiters = [| ' '; '\n'; '\t'; '&amp;lt;'; '&amp;gt;'; '=' |]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let getWords (s: string) = s.Split delimiters&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let getStats site =&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;let url = "http://" + site&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;let html = http url&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;let hwords = html |&amp;gt; getWords&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;let hrefs = html |&amp;gt; getWords |&amp;gt; Array.filter (fun s -&amp;gt; s = "href")&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;(site,html.Length, hwords.Length, hrefs.Length)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;使用：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; let sites = [ "www.live.com";"www.google.com";"search.yahoo.com" ];;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val sites : string list&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; sites |&amp;gt; List.map getStats;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : (string * int * int * int) list&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;em&gt;= [("www.live.com", 7728, 1156, 10);&lt;/em&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;em&gt;("www.google.com", 2685, 496, 14);&lt;/em&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;em&gt;("search.yahoo.com", 10715, 1771, 38)]&lt;/em&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;这个方法获得了给定&lt;/span&gt;website&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的&lt;/span&gt;HTML&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的长度，单词数，和链接数。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;|&amp;gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;操作符称为管道&lt;/span&gt;(pipline)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;操作。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;使用&lt;/span&gt;|&amp;gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;管道&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;简单的例子：&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let (|&amp;gt;) x f = f x&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;下面的例子：&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:12.0pt;color:black"&gt;[1;2;3] |&amp;gt; List.map (fun x -&amp;gt; x * x * x)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;与&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:12.0pt;color:black"&gt;List.map (fun x -&amp;gt; x * x * x) [1;2;3]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;意义相同。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;在某种意义上来说，&lt;/span&gt;|&amp;gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;是一个程序反转&lt;/span&gt;(functionapplication in reverse)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;。不管怎样，使用&lt;/span&gt;|&amp;gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;有一些显著的优点：&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpFirst" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;&amp;#183;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;程序更清晰：当与&lt;/span&gt;List.map&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;联合使用的时候，&lt;/span&gt;|&amp;gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;操作符允许你以一个前置链接&lt;/span&gt;(forward-chaining)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;，管道风格&lt;/span&gt;(piplinedstyle)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的方式执行一个数据转换。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;&amp;#183;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;类型推导：使用&lt;/span&gt;|&amp;gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;操作符更便于进行类型推导。因为程序是按照从左至右的方式进行类型推导的。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpLast" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;&amp;#183;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;完整的定义：&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val (|&amp;gt;) : 'T -&amp;gt; ('T -&amp;gt; 'U) -&amp;gt; 'U&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;使用&lt;/span&gt;&amp;gt;&amp;gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;操作符组合函数&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;首先看一个例子：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let google = http "http://www.google.com"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;span style="font-size:12.0pt;color:black"&gt;google |&amp;gt; getWords |&amp;gt; List.filter (fun s -&amp;gt; s = "href") |&amp;gt; List.length&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;使用&lt;/span&gt;&amp;gt;&amp;gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;做同样的事：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let countLinks = getWords &amp;gt;&amp;gt; List.filter (fun s -&amp;gt; s = "href") &amp;gt;&amp;gt; List.length&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;span style="font-size:12.0pt;color:black"&gt;google |&amp;gt; countLinks&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;关于&lt;/span&gt;&amp;gt;&amp;gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的完整定义：&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let (&amp;gt;&amp;gt;) f g x = g(f(x))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val (&amp;gt;&amp;gt;) : ('T -&amp;gt; 'U) -&amp;gt; ('U -&amp;gt; 'c) -&amp;gt; ('T -&amp;gt; 'c)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;个人感觉区别就是&lt;/span&gt;&amp;gt;&amp;gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;可以定义一个组合函数。而&lt;/span&gt;|&amp;gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;是直接计算。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 微软雅黑, 'Microsoft YaHei'; font-weight: normal; line-height: normal; font-size: 12px; "&gt;&lt;a href="http://www.cnblogs.com/pandora/archive/2010/08/23/FSharp_2_Menu.html" style="color: #1155a8; "&gt;目录传送门&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/pandora/aggbug/1815085.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pandora/archive/2010/09/01/FSharp_RecFunction.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pandora/archive/2010/08/31/FSharp_UsingOption.html</id><title type="text">【F#2.0系列】使用选项(Option)</title><summary type="text">使用选项(Option)下面看一个例子：使用模式匹配(Pattern matching)来生成option：Option的一些有用的方法： 方法 类型 描述 Option.get 'T option -&gt; 'T 返回一个Some类型的值。或抛异常 Option.isNone 'T option -&gt; bool 返回一个Option是否是None Option.map ('T -&gt;...</summary><published>2010-08-31T06:03:00Z</published><updated>2010-08-31T06:03:00Z</updated><author><name>Pandora</name><uri>http://www.cnblogs.com/pandora/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pandora/archive/2010/08/31/FSharp_UsingOption.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pandora/archive/2010/08/31/FSharp_UsingOption.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;font class="Apple-style-span" face="宋体"&gt;&lt;span class="Apple-style-span" style="font-family: verdana, 'courier new'; font-weight: normal; font-size: 14px; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family: 宋体; "&gt;使用选项&lt;/span&gt;(Option)&lt;/strong&gt;&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;span style="font-size:12.0pt;color:black"&gt;type 'T option =&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| None&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| Some of 'T&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;下面看一个例子：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; let people = [ ("Adam", None);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;("Eve" , None);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;("Cain", Some("Adam","Eve"));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;("Abel", Some("Adam","Eve")) ];;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val people : (string * (string *string) option) list&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;使用模式匹配&lt;/span&gt;(Pattern matching)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;来生成&lt;/span&gt;option&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; let showParents (name,parents) =&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;match parents with&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| Some(dad,mum) -&amp;gt; printfn "%s has father %s, mother %s" name dad mum&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| None&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;-&amp;gt; printfn "%s has no parents!" name;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val showParents : (string * (string * string) option) -&amp;gt; unit&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; showParents people&lt;/span&gt;&lt;span style="font-size:12.0pt;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;&lt;br/&gt;color:black"&gt;.[0]&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;Adam has no parents&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : unit = ()&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;Option&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的一些有用的方法：&lt;/span&gt;&lt;/p&gt;&lt;table class="LightList-Accent11" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid #4F81BD 1.0pt; mso-border-themecolor:accent1;mso-yfti-tbllook:1184;mso-padding-alt:0cm 5.4pt 0cm 5.4pt"&gt; &lt;tbody&gt;&lt;tr style="mso-yfti-irow:-1;mso-yfti-firstrow:yes"&gt;  &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:  accent1;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:accent1;  border-bottom:none;border-right:none;background:#4F81BD;mso-background-themecolor:  accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;  &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:5"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:  minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;  mso-themecolor:background1"&gt;方法&lt;/span&gt;&lt;span style="color:white;mso-themecolor:  background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td valign="top" style="border:none;border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:  accent1;background:#4F81BD;mso-background-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;  &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:  minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;  mso-themecolor:background1"&gt;类型&lt;/span&gt;&lt;span style="color:white;mso-themecolor:  background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:  accent1;border-left:none;border-bottom:none;border-right:solid #4F81BD 1.0pt;  mso-border-right-themecolor:accent1;background:#4F81BD;mso-background-themecolor:  accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;  &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:  minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;  mso-themecolor:background1"&gt;描述&lt;/span&gt;&lt;span style="color:white;mso-themecolor:  background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;/td&gt; &lt;/tr&gt; &lt;tr style="mso-yfti-irow:0"&gt;  &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;  border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;  &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;Option.get&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:  accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:  accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;  &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;'T option -&amp;gt; 'T&lt;/p&gt;  &lt;/td&gt;  &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;  border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;  &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:  minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;返回一个&lt;/span&gt;Some&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:  minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;类型的值。或抛异常&lt;/span&gt;&lt;/p&gt;  &lt;/td&gt; &lt;/tr&gt; &lt;tr style="mso-yfti-irow:1"&gt;  &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:  accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;  &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;Option.isNone&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;  &lt;p class="MsoNoSpacing"&gt;'T option -&amp;gt; bool&lt;/p&gt;  &lt;/td&gt;  &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;  mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;  &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:  Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;  mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin"&gt;返回一个&lt;/span&gt;Option&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:  minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;是否是&lt;/span&gt;None&lt;/p&gt;  &lt;/td&gt; &lt;/tr&gt; &lt;tr style="mso-yfti-irow:2"&gt;  &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;  border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;  &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;Option.map&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:  accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:  accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;  &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;('T -&amp;gt; 'U) -&amp;gt; 'T option  -&amp;gt; 'U option&lt;/p&gt;  &lt;/td&gt;  &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;  border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;  &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:  minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;如果是&lt;/span&gt;None&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:  minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;，就返回&lt;/span&gt;None&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:  minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;。如果是&lt;/span&gt;Some(x)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:  minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;，返回&lt;/span&gt;Some(f  x)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:  minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;，&lt;/span&gt;f&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:  minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;是给定的函数&lt;/span&gt;&lt;/p&gt;  &lt;/td&gt; &lt;/tr&gt; &lt;tr style="mso-yfti-irow:3;mso-yfti-lastrow:yes"&gt;  &lt;td valign="top" style="border-top:none;border-left:solid #4F81BD 1.0pt;  mso-border-left-themecolor:accent1;border-bottom:solid #4F81BD 1.0pt;  mso-border-bottom-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;  &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;Option.iter&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td valign="top" style="border:none;border-bottom:solid #4F81BD 1.0pt;  mso-border-bottom-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;  &lt;p class="MsoNoSpacing"&gt;('T -&amp;gt; unit) -&amp;gt; 'T option -&amp;gt; unit&lt;/p&gt;  &lt;/td&gt;  &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid #4F81BD 1.0pt;  mso-border-bottom-themecolor:accent1;border-right:solid #4F81BD 1.0pt;  mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;  &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:  Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;  mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin"&gt;对&lt;/span&gt;Some&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:  minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;类型的&lt;/span&gt;Option&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:  minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;执行指定的方法。&lt;/span&gt;&lt;/p&gt;  &lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;一些例子：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.0pt;font-family:NSimSun;mso-bidi-font-family:NSimSun"&gt;&amp;gt; Option.map(funx-&amp;gt;x) a;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.0pt;font-family:NSimSun;mso-bidi-font-family:NSimSun"&gt;val it : (string *string) option = Some ("aa", "bb")&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.0pt;font-family:NSimSun;mso-bidi-font-family:NSimSun"&gt;&amp;gt; Option.map(funx-&amp;gt; match x with | (first,second) -&amp;gt; first) a;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.0pt;font-family:NSimSun;mso-bidi-font-family:NSimSun"&gt;val it : string option= Some "aa"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.0pt;font-family:NSimSun;mso-bidi-font-family:NSimSun"&gt;&amp;gt; Option.map(funx-&amp;gt; match x with | (first,second) -&amp;gt; second) a;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.0pt;font-family:NSimSun;mso-bidi-font-family:NSimSun"&gt;val it : string option= Some "bb"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.0pt;font-family:NSimSun;mso-bidi-font-family:NSimSun"&gt;&amp;gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.0pt;font-family:NSimSun;mso-bidi-font-family:NSimSun"&gt;&amp;gt; Option.iter(funx-&amp;gt; match x with | (first:string,second) -&amp;gt; printfn "%s"(first+second)) a;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.0pt;font-family:NSimSun;mso-bidi-font-family:NSimSun"&gt;aabb&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.0pt;font-family:NSimSun;mso-bidi-font-family:NSimSun"&gt;val it : unit = ()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal;mso-layout-grid-align:none;text-autospace:none;border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span style="font-size:9.0pt;font-family:NSimSun;mso-bidi-font-family:NSimSun"&gt;&amp;gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;使用&lt;/span&gt;Option&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;类型进行控制&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;看这个例子：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let fetch url =&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;try Some (http url)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;with :? System.Net.WebException -&amp;gt; None&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border-top:solid windowtext 1.0pt;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;mso-border-top-alt:solid windowtext .75pt;mso-border-bottom-alt:solid windowtext .75pt;padding:1.0pt 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-top-alt:solid windowtext .75pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:1.0pt 0cm 1.0pt 0cm"&gt;http&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;函数是在之前章节定义的获取&lt;/span&gt;html&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的那个方法。在&lt;/span&gt;None&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的情况下抛出一个&lt;/span&gt;exception&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;。成功的访问会返回一个&lt;/span&gt;Some&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;值，也就是&lt;/span&gt;Option&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;类型的值。然后我们就可以使用&lt;/span&gt;Option&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;值来进行模式匹配：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; match (fetch "http://www.nature.com") with&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp; &lt;/span&gt;| Some text -&amp;gt; printfn "text = %s" text&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp; &lt;/span&gt;| None -&amp;gt; printfn "**** no web page found";;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;text = &amp;lt;HTML&amp;gt; ... &amp;lt;/HTML&amp;gt; (note: the HTML is shown here if connected to the web)&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : unit = ()&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family: 宋体; "&gt;使用条件判断：&lt;/span&gt;&amp;amp;&amp;amp;&lt;span lang="ZH-CN" style="font-family: 宋体; "&gt;和&lt;/span&gt;||&lt;/strong&gt;&lt;/p&gt;&lt;div style="border-top-style: none; border-right-style: none; border-left-style: none; border-width: initial; border-color: initial; border-bottom-style: solid; border-bottom-color: windowtext; border-bottom-width: 1pt; padding-top: 0cm; padding-right: 0cm; padding-bottom: 1pt; padding-left: 0cm; "&gt;&lt;p class="MsoNormal" style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0cm; padding-right: 0cm; padding-bottom: 0cm; padding-left: 0cm; "&gt;&lt;span lang="ZH-CN" style="font-family: 宋体; "&gt;基本的&lt;/span&gt;F#&lt;span lang="ZH-CN" style="font-family: 宋体; "&gt;控制符为&lt;/span&gt;if/then/elif/else&lt;span lang="ZH-CN" style="font-family: 宋体; "&gt;。举例：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size: 12pt; color: black; "&gt;let round x =&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; color: black; "&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if x &amp;gt;= 100 then 100&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; color: black; "&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;elif x &amp;lt; 0 then 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="border-top-style: none; border-right-style: none; border-left-style: none; border-width: initial; border-color: initial; border-bottom-style: solid; border-bottom-color: windowtext; border-bottom-width: 1pt; padding-top: 0cm; padding-right: 0cm; padding-bottom: 1pt; padding-left: 0cm; "&gt;&lt;span style="font-size: 12pt; color: black; "&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;else x&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal" style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px; "&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="border-top-style: none; border-right-style: none; border-left-style: none; border-width: initial; border-color: initial; border-bottom-style: solid; border-bottom-color: windowtext; border-bottom-width: 1pt; padding-top: 0cm; padding-right: 0cm; padding-bottom: 1pt; padding-left: 0cm; "&gt;&lt;p class="MsoNormal" style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0cm; padding-right: 0cm; padding-bottom: 0cm; padding-left: 0cm; "&gt;&lt;span lang="ZH-CN" style="font-family: 宋体; "&gt;条件判断其实是模式匹配&lt;/span&gt;(pattern matching)&lt;span lang="ZH-CN" style="font-family: 宋体; "&gt;的缩写；上例可以写为下面的形式：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size: 12pt; color: black; "&gt;let round x =&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; color: black; "&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;match x with&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; color: black; "&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| _ when x &amp;gt;= 100 -&amp;gt; 100&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; color: black; "&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| _ when x &amp;lt; 0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;-&amp;gt; 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="border-top-style: none; border-right-style: none; border-left-style: none; border-width: initial; border-color: initial; border-bottom-style: solid; border-bottom-color: windowtext; border-bottom-width: 1pt; padding-top: 0cm; padding-right: 0cm; padding-bottom: 1pt; padding-left: 0cm; "&gt;&lt;span style="font-size: 12pt; color: black; "&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| _&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;-&amp;gt; x&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal" style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px; "&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="border-top-style: none; border-right-style: none; border-left-style: none; border-width: initial; border-color: initial; border-bottom-style: solid; border-bottom-color: windowtext; border-bottom-width: 1pt; padding-top: 0cm; padding-right: 0cm; padding-bottom: 1pt; padding-left: 0cm; "&gt;&lt;p class="MsoNormal" style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0cm; padding-right: 0cm; padding-bottom: 0cm; padding-left: 0cm; "&gt;&lt;span lang="ZH-CN" style="font-family: 宋体; "&gt;使用&lt;/span&gt;&amp;amp;&amp;amp;&lt;span lang="ZH-CN" style="font-family: 宋体; "&gt;和&lt;/span&gt;||&lt;span lang="ZH-CN" style="font-family: 宋体; "&gt;：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size: 12pt; color: black; "&gt;let round2 (x, y) =&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; color: black; "&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if x &amp;gt;= 100 || y &amp;gt;= 100 then 100,100&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; color: black; "&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;elif x &amp;lt; 0 || y &amp;lt; 0 then 0,0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="border-top-style: none; border-right-style: none; border-left-style: none; border-width: initial; border-color: initial; border-bottom-style: solid; border-bottom-color: windowtext; border-bottom-width: 1pt; padding-top: 0cm; padding-right: 0cm; padding-bottom: 1pt; padding-left: 0cm; "&gt;&lt;span style="font-size: 12pt; color: black; "&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;else x,y&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal" style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px; "&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 微软雅黑, 'Microsoft YaHei'; line-height: normal; font-size: 12px; "&gt;&lt;span class="Apple-style-span" style="font-family: 微软雅黑, 'Microsoft YaHei'; line-height: normal; font-size: 12px; "&gt;&lt;span class="Apple-style-span" style="font-family: 微软雅黑, 'Microsoft YaHei'; line-height: normal; font-size: 12px; "&gt;&lt;span class="Apple-style-span" style="font-family: 微软雅黑, 'Microsoft YaHei'; line-height: normal; font-size: 12px; "&gt;&lt;a href="http://www.cnblogs.com/pandora/archive/2010/08/23/FSharp_2_Menu.html" style="color: #1155a8; "&gt;目录传送门&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/pandora/aggbug/1813617.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pandora/archive/2010/08/31/FSharp_UsingOption.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pandora/archive/2010/08/30/FSharp_UsingList.html</id><title type="text">【F#2.0系列】使用F#的List</title><summary type="text">使用F#的List创建一个list： 语法 描述 示例 [] 空list [] expr :: expr 将一个项加入一个list 1 :: [2; 3] [expr; ...; expr] 列举项创建list [1; 2; 3] [expr .. expr] 连续的数字 [1 .. 99] [ for x in list ... ] 通过运算生成list（类似于Linq里的select） [ f...</summary><published>2010-08-30T09:27:00Z</published><updated>2010-08-30T09:27:00Z</updated><author><name>Pandora</name><uri>http://www.cnblogs.com/pandora/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pandora/archive/2010/08/30/FSharp_UsingList.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pandora/archive/2010/08/30/FSharp_UsingList.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;使用&lt;/span&gt;F#&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;的&lt;/span&gt;List&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;创建一个&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;：&lt;/span&gt;&lt;/p&gt;&lt;table class="LightList-Accent11" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid #4F81BD 1.0pt;     mso-border-themecolor:accent1;mso-yfti-tbllook:1184;mso-padding-alt:0cm 5.4pt 0cm 5.4pt"&gt;     &lt;tbody&gt;         &lt;tr style="mso-yfti-irow:-1;mso-yfti-firstrow:yes"&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:accent1;             border-bottom:none;border-right:none;background:#4F81BD;mso-background-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:5"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;语法&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;background:#4F81BD;mso-background-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;描述&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;background:#4F81BD;mso-background-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;示例&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:0"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;[]&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;空&lt;/span&gt;list&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;[]&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:1"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;expr :: expr&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;将一个项加入一个&lt;/span&gt;list&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;1 :: [2; 3]&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:2"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;[expr; ...; expr]&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;列举项创建&lt;/span&gt;list&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;[1; 2; 3]&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:3"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;[expr .. expr]&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;连续的数字&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;[1 .. 99]&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:4"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;[ for x in list ... ]&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;通过运算生成&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;（类似于&lt;/span&gt;Linq&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;里的&lt;/span&gt;select&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;）&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;[ for x in 1..99 -&amp;gt; x * x ]&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:5;mso-yfti-lastrow:yes"&gt;             &lt;td valign="top" style="border-top:none;border-left:solid #4F81BD 1.0pt;             mso-border-left-themecolor:accent1;border-bottom:solid #4F81BD 1.0pt;             mso-border-bottom-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;expr @ expr&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-bottom:solid #4F81BD 1.0pt;             mso-border-bottom-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;合并两个&lt;/span&gt;list&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid #4F81BD 1.0pt;             mso-border-bottom-themecolor:accent1;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;[1; 2] @ [3]&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;操作示例：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let oddPrimes = [3; 5; 7; 11]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let morePrimes = [13; 17]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let primes = 2 :: (oddPrimes @ morePrimes)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val primes : int list = [2; 3; 5; 7; 11; 13; 17]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;同样是不可变的&lt;/span&gt;(immutable)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;：操作符&amp;#8220;&lt;/span&gt;::&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;&amp;#8221;并未真正改变原&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;本身，相反的，它创建了一个新的&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;。示例：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; let people = [ "Adam"; "Dominic"; "James" ];;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val people : string list&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; people;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : string list = [ "Adam"; "Dominic"; "James" ]&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; "Chris" :: people;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : string list = [ "Chris"; "Adam"; "Dominic"; "James" ]&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; people;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : string list = [ "Adam"; "Dominic"; "James" ]&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;如你所见，&lt;/span&gt;people&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;并未被改变。在内存中，&lt;/span&gt;F#&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;将&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;表示为关联的&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;；每个&lt;/span&gt;F#&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的值&lt;/span&gt;(value)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;包含了自身的值以及指向下一个列表的指针。也就是说当你使用&amp;#8220;&lt;/span&gt;::&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;&amp;#8221;来创建一个新的&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的时候，新&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的尾部就包含了一个指向老&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的指针。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;在我看来，通过不可变性与指针的结合，提高了&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的内存利用效率。&lt;/span&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;我们再看一个分解&lt;/span&gt;(decompose)list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的例子：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let oddPrimes = [3; 5; 7; 11]&lt;/span&gt;&lt;span style="font-size:12.0pt;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;&lt;br/&gt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;&lt;br/&gt;color:black"&gt;let printFirst primes =&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;match primes with&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| h :: t -&amp;gt; printfn "The first prime in the list is %d" h&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| [] -&amp;gt; printfn "No primes found in the list"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; printFirst oddPrimes;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;The first prime in the list is 3&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : unit = ()&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;程序通过&lt;/span&gt;h::t&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;来分解&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;，&lt;/span&gt;h&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;代表&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的第一个元素，&lt;/span&gt;t&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;代表其后续。&lt;/span&gt;[]&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;代表空&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;。&lt;/span&gt;match&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;是匹配开始关键字，&lt;/span&gt;primes&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;是匹配源，通过&lt;/span&gt;|&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;表示各种匹配条件。感觉类似于&lt;/span&gt;switchcase&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;F#&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;包含了一个&lt;/span&gt;List&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;模块。其提供了一些功能：&lt;/span&gt;&lt;/p&gt;&lt;table class="LightList-Accent11" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid #4F81BD 1.0pt;     mso-border-themecolor:accent1;mso-yfti-tbllook:1184;mso-padding-alt:0cm 5.4pt 0cm 5.4pt"&gt;     &lt;tbody&gt;         &lt;tr style="mso-yfti-irow:-1;mso-yfti-firstrow:yes"&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:accent1;             border-bottom:none;border-right:none;background:#4F81BD;mso-background-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:5"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;方法&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;background:#4F81BD;mso-background-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;类型&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;background:#4F81BD;mso-background-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;描述&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:0"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;List.length&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;'T list -&amp;gt; int&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;返回&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;长度&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:1"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;List.head&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;'T list -&amp;gt; 'T&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;返回非空&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的第一个元素&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:2"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;List.tail&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;'T list -&amp;gt; 'T list&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;返回非空&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;中除了第一个元素外的其他所有元素&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:3"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;List.init&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;int -&amp;gt; (int -&amp;gt; 'T) -&amp;gt; 'T list&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;通过一个可以通过索引生成值的函数来构造一个定长&lt;/span&gt;list&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:4"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;List.append&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;'T list -&amp;gt; 'T list -&amp;gt; 'T             list&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;返回一个合并后的&lt;/span&gt;list&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:5"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;List.filter&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;('T -&amp;gt; bool) -&amp;gt; 'T list -&amp;gt; 'T list&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;返回一个新的过滤后的列表。&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:6"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;List.map&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;('T -&amp;gt; 'U) -&amp;gt; 'T list             -&amp;gt; 'U list&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;将一个&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;通过一个转换函数转换为另一个&lt;/span&gt;list&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:7"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;List.iter&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;('T -&amp;gt; unit) -&amp;gt; 'T list -&amp;gt; unit&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;对&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;中的每个项执行一次指定的函数&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:8"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;List.unzip&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;('T * 'U) list -&amp;gt; 'T list *             'U list&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;zip&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;操作的反向操作&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:9"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;List.zip&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;'T list -&amp;gt; 'U list -&amp;gt; ('T * 'U) list&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;将两个拥有相同长度的&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;合并成一个新的&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;，相同&lt;/span&gt;index&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的项会组合成元组&lt;/span&gt;(tuple)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;，并作为新&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;中的项。&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:10"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;List.toArray&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;'T list -&amp;gt; 'T[]&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;从一个&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;生成一个&lt;/span&gt;array&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:11;mso-yfti-lastrow:yes"&gt;             &lt;td valign="top" style="border-top:none;border-left:solid #4F81BD 1.0pt;             mso-border-left-themecolor:accent1;border-bottom:solid #4F81BD 1.0pt;             mso-border-bottom-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;List.ofArray&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-bottom:solid #4F81BD 1.0pt;             mso-border-bottom-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;'T[] -&amp;gt; 'T list&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid #4F81BD 1.0pt;             mso-border-bottom-themecolor:accent1;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;从一个&lt;/span&gt;array&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;生成一个&lt;/span&gt;list&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;上面的说明还都是比较抽象的，示例如下：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; List.head [5; 4; 3];;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : int = 5&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; List.tail [5; 4; 3];;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : int list = [ 4; 3 ]&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; List.map (fun x -&amp;gt; x*x) [1; 2; 3];;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : int list = [ 1; 4; 9 ]&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; List.filter (fun x -&amp;gt; x % 3 = 0) [2; 3; 5; 7; 9];;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : int list = [ 3; 9 ]&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;从上例可得知，我们可以使用&lt;/span&gt;fun&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;关键字来表示匿名函数。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;一些通用的不可变数据结构&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;数据类型大概可以分为可变&lt;/span&gt;(mutable)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的和不可变&lt;/span&gt;(immutable)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的两种。不可变类型有时会被称为持久&lt;/span&gt;(persistent)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;或函数体&lt;/span&gt;(functional)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;。&lt;/span&gt;F#&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;中常用的不可变类型：&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpFirst" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;&amp;#183;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;元组&lt;/span&gt;(Tuple)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;和选项&lt;/span&gt;(option)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;：他们都是不可变类型并且是&lt;/span&gt;F#&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的基本&lt;/span&gt;(basicworkhorse)&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;&amp;#183;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;不可变链表&lt;/span&gt;&amp;#8217;T list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;：非常适合从左至右的便利。但不适合随机访问。随机访问的时间复杂度为&lt;/span&gt;O(n)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;，&lt;/span&gt;n&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;为&lt;/span&gt;list&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的长度。全名为：&lt;/span&gt;Microsoft.FSharp.Collections.List&amp;lt;&amp;#8217;T&amp;gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;&amp;#183;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;基于平衡树&lt;/span&gt;(balanced tree)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的不可变&lt;/span&gt;set&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;类型：非常适合添加，访问和合并，&lt;/span&gt;O(log(n))&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的访问时间复杂度。因为此类型是不可变的，内部的节点可以在不同的&lt;/span&gt;sets&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;之间共享。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpLast" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;&amp;#183;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;基于平衡树&lt;/span&gt;(balanced tree)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;不可变的&lt;/span&gt;map&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;类型：简单的说就是不可变的字典类型&lt;/span&gt;(dictionary)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;。也同样拥有&lt;/span&gt;O(log(n))&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的访问时间复杂度。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 微软雅黑, 'Microsoft YaHei'; line-height: normal; font-size: 12px; "&gt;&lt;span class="Apple-style-span" style="font-family: 微软雅黑, 'Microsoft YaHei'; line-height: normal; font-size: 12px; "&gt;&lt;span class="Apple-style-span" style="font-family: 微软雅黑, 'Microsoft YaHei'; line-height: normal; font-size: 12px; "&gt;&lt;a href="http://www.cnblogs.com/pandora/archive/2010/08/23/FSharp_2_Menu.html" style="color: #1155a8; "&gt;目录传送门&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/pandora/aggbug/1812780.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pandora/archive/2010/08/30/FSharp_UsingList.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pandora/archive/2010/08/27/FSharp_UsingString.html</id><title type="text">【F#2.0系列】介绍String类型</title><summary type="text">F#的string类型是.NET的System.String的缩写形式，代表了一连串的UnicodeUTF-16字符。使用String几种不同的String书写方式： 示例 种类 类型 "Humpty Dumpty" 字符串 string "c:\\Program Files" 字符串 string @"c:\Program Files" 无转义(Verbatim) string string "...</summary><published>2010-08-27T09:13:00Z</published><updated>2010-08-27T09:13:00Z</updated><author><name>Pandora</name><uri>http://www.cnblogs.com/pandora/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pandora/archive/2010/08/27/FSharp_UsingString.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pandora/archive/2010/08/27/FSharp_UsingString.html"/><content type="html">&lt;p class="MsoNormal"&gt;F#&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的&lt;/span&gt;string&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;类型是&lt;/span&gt;.NET&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的&lt;/span&gt;System.String&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的缩写形式，代表了一连串的&lt;/span&gt;UnicodeUTF-16&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;字符。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;使用&lt;/span&gt;String&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;几种不同的&lt;/span&gt;String&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;书写方式：&lt;/span&gt;&lt;/p&gt;&lt;table class="LightList-Accent11" border="1" cellspacing="0" cellpadding="0" style="margin-left:12.5pt;border-collapse:collapse;border:none;mso-border-alt:     solid #4F81BD 1.0pt;mso-border-themecolor:accent1;mso-yfti-tbllook:1184;     mso-padding-alt:0cm 5.4pt 0cm 5.4pt"&gt;     &lt;tbody&gt;         &lt;tr style="mso-yfti-irow:-1;mso-yfti-firstrow:yes"&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:accent1;             border-bottom:none;border-right:none;background:#4F81BD;mso-background-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:5"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;示例&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;background:#4F81BD;mso-background-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;种类&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;background:#4F81BD;mso-background-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;类型&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:0"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;"Humpty Dumpty"&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;字符串&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;string&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:1"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;"c:\\Program             Files"&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;字符串&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;string&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:2"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;@"c:\Program Files"&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;无转义&lt;/span&gt;(Verbatim)             string&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;string&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:3"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;"xyZy3d2"B&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;Literal byte array&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;byte []&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:4;mso-yfti-lastrow:yes"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;'c'&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;字符&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;char&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;转义字符：&lt;/span&gt;&lt;/p&gt;&lt;table class="LightList-Accent11" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid #4F81BD 1.0pt;     mso-border-themecolor:accent1;mso-yfti-tbllook:1184;mso-padding-alt:0cm 5.4pt 0cm 5.4pt"&gt;     &lt;tbody&gt;         &lt;tr style="mso-yfti-irow:-1;mso-yfti-firstrow:yes"&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:accent1;             border-bottom:none;border-right:none;background:#4F81BD;mso-background-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:5"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;字符&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;background:#4F81BD;mso-background-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;含义&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;background:#4F81BD;mso-background-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span style="color:white;             mso-themecolor:background1"&gt;ASCII/Unicode &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;值&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;background:#4F81BD;mso-background-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;示例&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:0"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;\n&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;换行&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;10&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;"\n"&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:1"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;\r&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;回车&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;13&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;"\r"&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:2"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;\t&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;Tab&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;9&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;"\t"&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:3"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;\b&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;Backspace&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;8&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&amp;nbsp;&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:4"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;\NNN&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;使用三位数字表示的字符&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;NNN&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;"\032"&amp;nbsp;&lt;em&gt;(space)&lt;/em&gt;&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:5"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;\uNNNN&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;Unicode &lt;span lang="ZH-CN" style="font-family:宋体;             mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:             宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;字符&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;NNNN&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;"\u00a9"&amp;nbsp;(&amp;#169;)&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:6;mso-yfti-lastrow:yes"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;\UNNNNNNNN&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;Long Unicode &lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;字符&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;NNNN NNNN&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;"\U00002260"(_)&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;&lt;p class="MsoNormal"&gt;Byte array&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;中的字符都是&lt;/span&gt;ASCII&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;字符。非&lt;/span&gt;ASCII&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;字符需要使用转义符。&lt;/span&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;将一个字符串写为两行：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; let s = "All the kings horses&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;- and all the kings men";;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val s : string&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;支持通过&lt;/span&gt;.[]&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;来访问字符串的特定字符：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; let s = "Couldn't put Humpty";;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val s : string&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; s.Length;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : int = 19&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; s.[13];;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : char = 'H'&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;使用&lt;/span&gt;.[index..index]&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;可以获取子字符串&lt;/span&gt;(substring)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; let s = "Couldn't put Humpty";;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val s : string&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; s.[13..16];;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : string = "Hump"&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;字符串是不可变的&lt;/span&gt;(immutable)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;；就是说，一个字符串的值在其生成之后就不能被改变。例如：&lt;/span&gt;Substring&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;方法并不会修改原字符串本身，而是返回了一个新的字符串。&lt;/span&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;当你视图修改一个字符串的时候，你会得到一个&lt;/span&gt;error&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; let s = "Couldn't put Humpty";;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val s : string = "Couldn't put Humpty"&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; s.[13] &amp;lt;- 'h';;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp; &lt;/span&gt;s.[13] &amp;lt;- 'h';;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp; &lt;/span&gt;^^&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;stdin(75,0): error: FS0001: Type error in the use of the overloaded operator&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;'set_Item'. The type 'string' does not support any operators named 'set_Item'&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;构造一个字符串&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;最简单的方式就是使用&lt;/span&gt;+&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;操作符：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; "Couldn't put Humpty" + " " + "together again";;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : string = "Couldn't put Humpty together again"&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;我们依然可以使用&lt;/span&gt;System.Text.StringBuilder&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;来构建：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; let buf = new System.Text.StringBuilder();;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val buf : System.Text.StringBuilder&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; buf.Append("Humpty Dumpty");;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; buf.Append(" sat on the wall");;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; buf.ToString();;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : string = "Humpty Dumpty sat on the wall"&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;同时，&lt;/span&gt;F#&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;兼容&lt;/span&gt;OCaml&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的&lt;/span&gt;^&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;操作符。（感觉上和&lt;/span&gt;+&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;是一回事。）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 微软雅黑, 'Microsoft YaHei'; line-height: normal; font-size: 12px; "&gt;&lt;span class="Apple-style-span" style="font-family: 微软雅黑, 'Microsoft YaHei'; line-height: normal; font-size: 12px; "&gt;&lt;span class="Apple-style-span" style="font-family: 微软雅黑, 'Microsoft YaHei'; line-height: normal; font-size: 12px; "&gt;&lt;a href="http://www.cnblogs.com/pandora/archive/2010/08/23/FSharp_2_Menu.html" style="color: #1155a8; "&gt;目录传送门&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/pandora/aggbug/1810279.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pandora/archive/2010/08/27/FSharp_UsingString.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pandora/archive/2010/08/26/FSharp_Using_Number.html</id><title type="text">【F#2.0系列】使用F#进行算术操作</title><summary type="text">F#高效高产的源头就在于其构建在久经考验的函数式编程理念之上。使用F#进行算术操作基本类型： 类型 描述 示例 .NET 类型 bool True/false values true,false System.Boolean byte 8-bit unsigned integers 0uy,19uy,0xFFuy System.Byte sbyte 8-bit signed integers 0y...</summary><published>2010-08-26T09:31:00Z</published><updated>2010-08-26T09:31:00Z</updated><author><name>Pandora</name><uri>http://www.cnblogs.com/pandora/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pandora/archive/2010/08/26/FSharp_Using_Number.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pandora/archive/2010/08/26/FSharp_Using_Number.html"/><content type="html">&lt;p class="MsoNormal"&gt;F#&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;高效高产的源头就在于其构建在久经考验的函数式编程理念之上。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;使用&lt;/span&gt;F#&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;进行算术操作&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;基本类型：&lt;/span&gt;&lt;/p&gt;&lt;table class="LightList-Accent11" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid #4F81BD 1.0pt;     mso-border-themecolor:accent1;mso-yfti-tbllook:1184;mso-padding-alt:0cm 5.4pt 0cm 5.4pt"&gt;     &lt;tbody&gt;         &lt;tr style="mso-yfti-irow:-1;mso-yfti-firstrow:yes"&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:accent1;             border-bottom:none;border-right:none;background:#4F81BD;mso-background-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:5"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;类型&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;background:#4F81BD;mso-background-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;描述&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;background:#4F81BD;mso-background-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;示例&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;background:#4F81BD;mso-background-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span style="color:white;             mso-themecolor:background1"&gt;.NET &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;类型&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:0"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;bool&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;True/false values&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;true,false&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;System.Boolean&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:1"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;byte&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;8-bit unsigned integers&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;0uy,19uy,0xFFuy&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;System.Byte&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:2"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;sbyte&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;8-bit signed integers&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;0y,&amp;nbsp;19y,0xFFy&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;System.SByte&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:3"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;int16&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;16-bit signed integers&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;0s,&amp;nbsp;19s,0x0800s&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;System.Int16&lt;a name="IDX-26725C90F6-83E2-40C9-BCC0-D520475ADE" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.cnblogs.com/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;amp;file=anchor.gif); background-repeat: no-repeat no-repeat; "&gt;&lt;/a&gt;&lt;a name="94" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.cnblogs.com/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;amp;file=anchor.gif); background-repeat: no-repeat no-repeat; "&gt;&lt;/a&gt;&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:4"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;uint16&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;16-bit unsigned integers&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;0us,19us,0x0800us&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;System.UInt16&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:5"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;int,&amp;nbsp;int32&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;32-bit signed integers&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;0,&amp;nbsp;19,0x0800,0b0001&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;System.Int32&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:6"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;uint32&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;32-bit unsigned integers&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;0u,&amp;nbsp;19u,0x0800u&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;System.UInt32&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:7"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;int64&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;64-bit signed integers&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;0L,&amp;nbsp;19L,0x0800L&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;System.Int64&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:8"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;uint64&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;64-bit unsigned integers&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;0UL,19UL,0x0800UL&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;System.UInt64&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:9"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;nativeint&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;Machine-sized signed integers&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;0n,&amp;nbsp;19n,0x0800n&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;System.IntPtr&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:10"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;unativeint&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;Machine-sized unsigned             integers&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;0un,19un,0x0800un&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;System.UIntPtr&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:11"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;single,float32&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;32-bit IEEE floating-point&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;0.0f,19.7f,1.3e4f&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;System.Single&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:12"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;double,float&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;64-bit IEEE floating-point&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;0.0,19.7,1.3e4&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;System.Double&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:13"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;decimal&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;High-precision decimal values&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;0M,&amp;nbsp;19M,19.03M&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;System.Decimal&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:14"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;bigint&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;Arbitrarily large integers&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;0I,&amp;nbsp;19I&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;Math.BigInt&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:15"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;bignum&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;Arbitrary-precision rationals&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;0N,&amp;nbsp;19N&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;Math.BigNum&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:16;mso-yfti-lastrow:yes"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;unit&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;The type with only one value&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;()&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;Core.Unit&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;a name="95" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.cnblogs.com/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;amp;file=anchor.gif); background-repeat: no-repeat no-repeat; "&gt;&lt;/a&gt;&lt;a name="ch03lev2sec2725C90F6-83E2-40C9-BCC0-D520" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.cnblogs.com/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;amp;file=anchor.gif); background-repeat: no-repeat no-repeat; "&gt;&lt;/a&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;在&lt;/span&gt;F#&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;中，对数字的加减乘除操作均是不检查的&lt;/span&gt;(unchecked)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;；就是说如果超出范围，不会得到异常。例如，&lt;/span&gt;2147483647&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;是最大的&lt;/span&gt;32&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;位整数：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; 2147483647+1;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : int = -2147483648&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;同时，我们也提供了检查溢出的实现：&lt;/span&gt;Microsoft.FSharp.Core.Operators.Checked&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;。这个模块&lt;/span&gt;(module)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;中实现的操作将在移除发生时抛出&lt;/span&gt;System.OverflowException&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;异常。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;如果希望避免溢出，可以使用&lt;/span&gt;decimal&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;，&lt;/span&gt;bigint&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;和&lt;/span&gt;bignum&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;类型。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;除零将会得到&lt;/span&gt;System.DivideByZeroException&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;，但浮点数&lt;/span&gt;(floating-pointnumber)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;除外，浮点数除零将会返回&lt;/span&gt;Infinity&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;和&lt;/span&gt;-Infinity&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;通过类型推导&lt;/span&gt;(typeinference)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;来确定操作符重载&lt;/span&gt;&amp;#8212;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;如果没有重载则&lt;/span&gt;F#&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;约定使用&lt;/span&gt;32&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;位整数的操作符。&lt;/span&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;如果希望使用指定类型的操作符，则必须使用类型注释&lt;/span&gt;(typeannotation)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;来帮助类型推导器推导出正确的结果：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; let squareAndAdd a b = a * a + b;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val squareAndAdd : int -&amp;gt; int -&amp;gt; int&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border-top:solid windowtext 1.0pt;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;mso-border-top-alt:solid windowtext .75pt;mso-border-bottom-alt:solid windowtext .75pt;padding:1.0pt 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-top-alt:solid windowtext .75pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:1.0pt 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;如果我们需要指定使用&lt;/span&gt;float&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的操作符，只需：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; let squareAndAdd (a:float) b = a * a + b;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val squareAndAdd : float -&amp;gt; float -&amp;gt; float&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;这就是类型推导器发挥的作用。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;位&lt;/span&gt;(bitwise)&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;操作&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;位操作符：&lt;/span&gt;&lt;/p&gt;&lt;table class="LightList-Accent11" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid #4F81BD 1.0pt;     mso-border-themecolor:accent1;mso-yfti-tbllook:1184;mso-padding-alt:0cm 5.4pt 0cm 5.4pt"&gt;     &lt;tbody&gt;         &lt;tr style="mso-yfti-irow:-1;mso-yfti-firstrow:yes"&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:accent1;             border-bottom:none;border-right:none;background:#4F81BD;mso-background-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:5"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;操作符&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;background:#4F81BD;mso-background-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;描述&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;background:#4F81BD;mso-background-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;举例&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;background:#4F81BD;mso-background-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;结果&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:0"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;&amp;amp;&amp;amp;&amp;amp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;与&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;0x65 &amp;amp;&amp;amp;&amp;amp; 0x0F&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;0x05&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:1"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;|||&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;或&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;0x65 ||| 0x18&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;0x7D&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:2"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;&amp;#710;&amp;#710;&amp;#710;&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;异或&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;0x65&amp;#710;&amp;#710;&amp;#710;0x0F&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;0x6A&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:3"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;~~~&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;求反&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;~~~0x65&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;0xFFFFFF9a&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:4"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;&amp;lt;&amp;lt;&amp;lt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;左移&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;0x01 &amp;lt;&amp;lt;&amp;lt; 3&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;0x08&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:5;mso-yfti-lastrow:yes"&gt;             &lt;td valign="top" style="border-top:none;border-left:solid #4F81BD 1.0pt;             mso-border-left-themecolor:accent1;border-bottom:solid #4F81BD 1.0pt;             mso-border-bottom-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;&amp;gt;&amp;gt;&amp;gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-bottom:solid #4F81BD 1.0pt;             mso-border-bottom-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;右移&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-bottom:solid #4F81BD 1.0pt;             mso-border-bottom-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;0x65 &amp;gt;&amp;gt;&amp;gt; 3&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid #4F81BD 1.0pt;             mso-border-bottom-themecolor:accent1;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;0x0C&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;将一个&lt;/span&gt;32&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;位整数编码成&lt;/span&gt;(encode) 1,2,&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;或&lt;/span&gt;5&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;个字节，并用一个数字列表返回。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;let encode (n: int32) =&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;(n &amp;gt;= 0&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;amp;&amp;amp; n &amp;lt;= 0x7F)&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;then [ n ]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;elif (n &amp;gt;= 0x80 &amp;amp;&amp;amp; n &amp;lt;= 0x3FFF) then [ (0x80 ||| (n &amp;gt;&amp;gt;&amp;gt; 8)) &amp;amp;&amp;amp;&amp;amp; 0xFF;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;(n &amp;amp;&amp;amp;&amp;amp; 0xFF) ]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;else&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp; &lt;/span&gt;[ 0xC0; ((n &amp;gt;&amp;gt;&amp;gt; 24) &amp;amp;&amp;amp;&amp;amp; 0xFF);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;((n &amp;gt;&amp;gt;&amp;gt; 16) &amp;amp;&amp;amp;&amp;amp; 0xFF);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;((n &amp;gt;&amp;gt;&amp;gt; 8)&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp; &lt;/span&gt;&amp;amp;&amp;amp;&amp;amp; 0xFF);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;(n&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;amp;&amp;amp;&amp;amp; 0xFF) ]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;p class="MsoNormal" style="border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;调用：&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; encode 32;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : int32 list = [32]&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; encode 320;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : int32 list = [129; 64]&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&amp;gt; encode 32000;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm 0cm 1.0pt 0cm"&gt;&lt;em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;val it : int32 list = [192; 0; 0; 125; 0]&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size:12.0pt;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;数字类型转换&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;不同数字类型之间不会隐式转换。必须使用相应的操作符进行显式的类型转换：&lt;/span&gt;&lt;/p&gt;&lt;table class="LightList-Accent11" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid #4F81BD 1.0pt;     mso-border-themecolor:accent1;mso-yfti-tbllook:1184;mso-padding-alt:0cm 5.4pt 0cm 5.4pt"&gt;     &lt;tbody&gt;         &lt;tr style="mso-yfti-irow:-1;mso-yfti-firstrow:yes"&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:accent1;             border-bottom:none;border-right:none;background:#4F81BD;mso-background-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:5"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;操作符&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;background:#4F81BD;mso-background-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;描述&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;background:#4F81BD;mso-background-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;用法&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;background:#4F81BD;mso-background-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:1"&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;color:white;             mso-themecolor:background1"&gt;结果&lt;/span&gt;&lt;span style="color:white;mso-themecolor:             background1"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:0"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;sbyte&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;转换为&lt;/span&gt;sbyte&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;sbyte (-17)&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;-17y&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:1"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;byte&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;转换为&lt;/span&gt;byte&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;byte 255&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;255uy&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:2"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;int16&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;转换为&lt;/span&gt;int16&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;int16 0&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;0s&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:3"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;uint16&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;转换为&lt;/span&gt;uint16&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;uint16 65535&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;65535us&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:4"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;int/int32&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;转换为&lt;/span&gt;int&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;int 17.8&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;17&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:5"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;uint32&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;转换为&lt;/span&gt;uint32&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;uint32 12&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;12u&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:6"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;int64&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;转换为&lt;/span&gt;int64&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;int64 (-100.4)&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;-100L&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:7"&gt;             &lt;td valign="top" style="border:none;border-left:solid #4F81BD 1.0pt;mso-border-left-themecolor:             accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;uint64&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;转换为&lt;/span&gt;uint64&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;uint64 1&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;1UL&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:8"&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:68"&gt;&lt;strong&gt;float32&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:             minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;             mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;转换为&lt;/span&gt;float32&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:solid #4F81BD 1.0pt;mso-border-top-themecolor:             accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:             accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;float32 65&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:solid #4F81BD 1.0pt;mso-border-themecolor:accent1;             border-left:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:64"&gt;65.0f&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr style="mso-yfti-irow:9;mso-yfti-lastrow:yes"&gt;             &lt;td valign="top" style="border-top:none;border-left:solid #4F81BD 1.0pt;             mso-border-left-themecolor:accent1;border-bottom:solid #4F81BD 1.0pt;             mso-border-bottom-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing" style="mso-yfti-cnfc:4"&gt;&lt;strong&gt;float&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-bottom:solid #4F81BD 1.0pt;             mso-border-bottom-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:             Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;             mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;             mso-hansi-theme-font:minor-latin"&gt;转换为&lt;/span&gt;float&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border:none;border-bottom:solid #4F81BD 1.0pt;             mso-border-bottom-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;float 65&lt;/p&gt;             &lt;/td&gt;             &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid #4F81BD 1.0pt;             mso-border-bottom-themecolor:accent1;border-right:solid #4F81BD 1.0pt;             mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt"&gt;             &lt;p class="MsoNoSpacing"&gt;65.0&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;需要注意的是，这些转换都是不检查溢出的。不会抛出异常。如需要使用溢出异常，还是需要使用&lt;/span&gt;Microsoft.FSharp.Core.Operators.Checked&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;模块下的操作符。或者也可以使用&lt;/span&gt;.NET&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的&lt;/span&gt;System.Convert&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;。但使用&lt;/span&gt;System.Convert&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;会带来一些问题，需要使用类型注释来帮助类型推导器工作。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Cambria;mso-ascii-theme-font:major-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:major-fareast;mso-hansi-font-family:Cambria;mso-hansi-theme-font:major-latin"&gt;数字比较&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;可以使用的操作符为&lt;/span&gt;=&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;，&lt;/span&gt;&amp;lt;&amp;gt;,&amp;lt;,&amp;lt;=,&amp;gt;,&amp;gt;=,min&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;和&lt;/span&gt;max&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;。全都和字面的意义相同。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;需要注意的是，当对浮点数进行操作的时候，这些操作符实现了&lt;/span&gt;IEEE&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的&lt;/span&gt;NaN&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;。任何包含&lt;/span&gt;NaN&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;的比较操作都会返回&lt;/span&gt;false&lt;span lang="ZH-CN" style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 微软雅黑, 'Microsoft YaHei'; line-height: normal; font-size: 12px; "&gt;&lt;span class="Apple-style-span" style="font-family: 微软雅黑, 'Microsoft YaHei'; line-height: normal; font-size: 12px; "&gt;&lt;a href="http://www.cnblogs.com/pandora/archive/2010/08/23/FSharp_2_Menu.html" style="color: #1155a8; "&gt;目录传送门&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/pandora/aggbug/1809305.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pandora/archive/2010/08/26/FSharp_Using_Number.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
