﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet type="text/css" href="/style/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <title>FSherp RSS</title>
    <link>http://qianxun.net</link>
    <description>FSherp聚合资料</description>
    <generator>RainbowSoft Studio Z-Blog 1.6 Final Build 60816</generator>
    <language>zh-CN</language>
    <copyright>Copyright 2008 FSherp.cn Some Rights Reserved.</copyright>
    <pubDate>Fri, 20 Mar 2009 10:48:42 GMT</pubDate>
    <lastBuildDate>Fri, 20 Mar 2009 10:48:42 GMT</lastBuildDate>
    <item>
      <title>F# 将会整合到 Visual Studio 2010 当中</title>
      <author>Myshuiyue</author>
      <link>http://qianxun.net/Post/2009/2/4638.shtml</link>
      <pubDate>20 Feb 2009 10:52:19</pubDate>
      <guid>http://qianxun.net/Post/2009/2/4638.shtml</guid>
      <description><![CDATA[<div><p>去年, 微软开发部门的领导者 S. Somasegar, 宣布微软已经决定将 <a  href="http://blogs.msdn.com/controlpanel/blogs/blogs.msdn.com/somasegar/archive/2007/10/17/f-a-functional-programming-language.aspx" target="_blank">F# 作为受微软支持的 .NET 平台语言</a>. 我现在兴奋的宣布一项结果: <b>F# 将会整合到 Visual Studio 2010 当中</b>, 自从 <a  href="http://blogs.msdn.com/controlpanel/blogs/blogs.msdn.com/dsyme/archive/2008/08/29/the-f-september-2008-ctp-is-now-available.aspx" target="_blank">F# September 2008 CTP</a> 以来, F# 项目组一直致力于同 Visual Studio 2010 的整合工作. 下面的截屏展示了在 2010 shell 下使用 F# 开发工具, 以及新的编辑器和新的 look-back-in-time &quot;调试历史&quot;窗口.</p><p>去年, 我们在 F# 开发者社区和用户组看到了惊人的增长速度, 还有热烈的讨论. 还有两处更为显著的是: <a  href="http://channel9.msdn.com/pdc2008/TL11/" target="_blank">PDC presentation on F# by Luca Bolognese</a> 还有在 JAOO 上的关于 F# 和其他语言的现场演示&nbsp;<a  href="http://jaoo.blip.tv/file/1317881/" target="_blank">Anders Hejlsberg, Where are Programming Languages Going</a>. 如果你想知道为什么微软会把一门函数式语言添加到 Visual Studio 以及 .NET 开发工具当中, 一种原因或许是因为它给予特定领域极大的生产力提升, 除此之外我也想不出更好的能超过这两位微软最有经验的专家的理由.</p><p>在第一个受支持的发行版中, 我们将目标聚集于 F# 内核的强项: 探索 F# 交互编程, 数据编程, 实现并行和异步组件. 在我们私底下谈论这件事的时候, 这期间自然有很多问题被多次问到, 我将这些问题列在下面, 如果你有更多的问题要问, 请回复.</p><p><a  href="http://picasaweb.google.com/lh/photo/pH3-EN-_vAkQZxgAD6crkg"><img alt="" src="http://lh4.ggpht.com/_M94xOMOWd6s/SUDRgOWTzBI/AAAAAAAAA-s/jM3ZSx8P1RU/s400/FSharpShipInVisualStudio2010.png" /></a></p><p>问: 下一个 F# 发行版是什么时候? 我能继续在 VS2008 中使用吗?<br />&nbsp;&nbsp; &nbsp;下一个主要的发行版将会内置于 Visual Studio 2010 的第一个测试版当中, 届时会提供用于 Visual Studio 2008/.NET2.0 的 F# 编译器及工具.</p><p>问: 还开源吗?<br />&nbsp;&nbsp; &nbsp;我们的计划是让 F# 编译器和核心库在 CodePlex 上开源, 我们还计划启动一个叫 &quot;F# Power Pack&quot; 的 CodePlex 项目, 包含 F# 解析器和语法分析器. 我们已经在 <a  href="http://article.gmane.org/gmane.comp.lang.fsharp.general/1000" target="_blank">10 月份的 F# 邮件</a>当中分布了这件事.</p><p>问: F# 在 .NET 4.0 中吗?<br />&nbsp;&nbsp; &nbsp;按当前计划, F# 核心库和编译器会放在附加组件中, 不在 .NET 框架里. 预计会作为 F# 可再发行包. 在 Visual Studio 安装项目中引用这个包就可以把核心库部署到客户机上了.</p><p>问: 工具支持程度有多高?<br />&nbsp;&nbsp; &nbsp;按上面的描述, 对于 F# 的这个发行版, 我们主要致力于使它成为丰富数据和丰富控制流的编程语言, 处理函数式语言的使用方法 (思考算法, 数据维护, 数据转换, 并行编程, 反向编程组件). 工具支持计划围绕着编辑, 脚本, 交互体验, 项目系统, 调试, 分析以及与 C# 和 Visual Basic 的高度整合.</p><p>问: 这个发行版会包含设计工具吗?<br />&nbsp;&nbsp; &nbsp;我们关注的是交付高质量的 F# 核心工具用于设计参数, Visual Studio 在面向对象程序环境具备令人吃惊的丰富呈现能力, 结果是我们明确自己的决心, 与 C# 和 Visual Basic 这样的具备丰富设计呈现能力的编程语言寻求一个平衡点. 这意味着 F# 用户应该使用 Visual Studio 设计工具产生 C# 或 Visual Basic 代码后包含在 F# 应用程序当中. 在 Visual Studio 2010 中, 预计包含内建设计组件(例如: WinForms, ASP.NET, Silverlight 和 WPF 应用程序设计前端) F# 应用程序通常要使用混合语言创作. 我们会提供向导模板引导 F# 开发者.</p><p>问: 关于 Mono?<br />&nbsp;&nbsp; &nbsp;F# 编译器和工具会继续通过 Visual Studio 2008/.NET2.0 提供给 Mono 用户. (详见后文)</p><p>问: F# 起源于 &quot;OCaml-like language for .NET&quot;? 它还会继续沿着这条路走下去吗?<br />&nbsp;&nbsp; &nbsp;F# 从 INRIA 共享出色的 OCaml 语言核心结构. 这是早期设计的决定和承诺, Caml 语言家族的重要性在于它是一门实用的函数式语言, 作为创新, F# 本身已经成熟, 包括面向对象, 运算单位和计算表达式. 回首以前, 我们计划是继续允许 F# 使用特定模式支持跨编译公共子集, 现在仍然如此. 这通常需要使用 F# Power Pack 组件, 但它会从 Visual Studio 2010 中分离出来.</p><p>问 : 微软研究院还在参与吗?<br />&nbsp;&nbsp; &nbsp;是的当然! F# 是连接微软研究院, 剑桥和微软开发部的纽带. 我很高兴继续参与语言的设计, 同时还能留在微软研究院. 我们的团队包括剑桥 雷德蒙 温哥华 中国 德国还有纽约的人. 我一直对人们给这个项目带来的增进感到惊讶, 我希望把它当成微软创新的榜样.</p><p>非常感谢每个在 F# .NET MSR 还有语言社区的支持和帮助, 有他们才会有 F# 的今天. 之前一直很高兴, 我们相信这种发展会让 F# 在更多的领域受到关注.</p><p>快乐的编写和开发吧!</p></div>]]></description>
      <category>2902</category>
      <dc:date.Taken>2009-3-20 10:48:42</dc:date.Taken>
    </item>
    <item>
      <title>F#版本更新说明</title>
      <author>Myshuiyue</author>
      <link>http://qianxun.net/Post/2008/10/4618.shtml</link>
      <pubDate>15 Oct 2008 11:48:15</pubDate>
      <guid>http://qianxun.net/Post/2008/10/4618.shtml</guid>
      <description><![CDATA[<div>F#CTP 1.9.6.0更正列表:&nbsp;<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1、名称空间必须使用完全限定名打开，名称空间不可以取别名。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2、在fs,fsi文件中，除注释外，第一行必须使用#light或#light &quot;off&quot;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3、元组类型互操作上发生了变动。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;新增了两个类型来提供互操作上的支持。TupleEnd,TupleNested，彻底解决了互操作上的不一致性。</p><p>&nbsp;</p><div class="cnblogs_code"><!--<br  /><br  />Code highlighting produced by Actipro CodeHighlighter (freeware)<br  />http://www.CodeHighlighter.com/<br  /><br  />--><span style="color: #0000ff">let</span><span style="color: #000000">&nbsp;tuple_7=(</span><span style="color: #800080">1</span><span style="color: #000000">,</span><span style="color: #800080">2</span><span style="color: #000000">,</span><span style="color: #800080">3</span><span style="color: #000000">,</span><span style="color: #800080">4</span><span style="color: #000000">,</span><span style="color: #800080">5</span><span style="color: #000000">,</span><span style="color: #800080">6</span><span style="color: #000000">,</span><span style="color: #800080">7</span><span style="color: #000000">)<br /><br /></span><span style="color: #0000ff">let</span><span style="color: #000000">&nbsp;tuple_9=(</span><span style="color: #800080">1</span><span style="color: #000000">,</span><span style="color: #800080">2</span><span style="color: #000000">,</span><span style="color: #800080">4</span><span style="color: #000000">,</span><span style="color: #800080">8</span><span style="color: #000000">,</span><span style="color: #800080">16</span><span style="color: #000000">,</span><span style="color: #800080">32</span><span style="color: #000000">,</span><span style="color: #800080">64</span><span style="color: #000000">,</span><span style="color: #800080">128</span><span style="color: #000000">)&nbsp;<br /><br /></span><span style="color: #0000ff">let</span><span style="color: #000000">&nbsp;tuple_7_1=(</span><span style="color: #800080">1</span><span style="color: #000000">,</span><span style="color: #800080">2</span><span style="color: #000000">,</span><span style="color: #800080">4</span><span style="color: #000000">,</span><span style="color: #800080">8</span><span style="color: #000000">,</span><span style="color: #800080">16</span><span style="color: #000000">,</span><span style="color: #800080">32</span><span style="color: #000000">,(</span><span style="color: #800080">64</span><span style="color: #000000">,</span><span style="color: #800080">128</span><span style="color: #000000">))</span></div><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对应的c#签名:&nbsp;&nbsp;</p><p>&nbsp;</p><div class="cnblogs_code"><!--<br  /><br  />Code highlighting produced by Actipro CodeHighlighter (freeware)<br  />http://www.CodeHighlighter.com/<br  /><br  />--><span style="color: #000000">public&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;Microsoft.FSharp.Core.Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;Microsoft.FSharp.Core.TupleEnd&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;&gt;&nbsp;tuple_7&nbsp;{&nbsp;get;&nbsp;}&nbsp;<br /><br />public&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;Microsoft.FSharp.Core.Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;Microsoft.FSharp.Core.TupleEnd&lt;Microsoft.FSharp.Core.Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;&gt;&gt;&nbsp;tuple_7_1&nbsp;{&nbsp;get;&nbsp;}&nbsp;<br /><br />public&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;Microsoft.FSharp.Core.Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;Microsoft.FSharp.Core.TupleNested&lt;Microsoft.FSharp.Core.Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;&gt;&gt;&nbsp;tuple_9&nbsp;{&nbsp;get;&nbsp;}<br /><br /></span></div><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C#语言如果使用以下的规则，F#语言就可以正确的识别出元组。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果元组元素个数小于7，使用Tuple泛型，下面的代码，F#可以正确的转换为(1,2,3);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p><p>&nbsp;</p><div class="cnblogs_code"><!--<br  /><br  />Code highlighting produced by Actipro CodeHighlighter (freeware)<br  />http://www.CodeHighlighter.com/<br  /><br  />--><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,</span><span style="color: #0000ff">int</span><span style="color: #000000">,</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;(</span><span style="color: #800080">1</span><span style="color: #000000">,</span><span style="color: #800080">2</span><span style="color: #000000">,</span><span style="color: #800080">3</span><span style="color: #000000">)</span></div><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;等于七个元素，第七个元素使用TupleEnd包装,下面的代码，F#可以正确的转换为(1,2,3,4,5,6,7)&nbsp;&nbsp;&nbsp;</p><p>&nbsp;</p><div class="cnblogs_code"><!--<br  /><br  />Code highlighting produced by Actipro CodeHighlighter (freeware)<br  />http://www.CodeHighlighter.com/<br  /><br  />--><span style="color: #000000">net&nbsp;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,</span><span style="color: #0000ff">int</span><span style="color: #000000">,</span><span style="color: #0000ff">int</span><span style="color: #000000">,</span><span style="color: #0000ff">int</span><span style="color: #000000">,</span><span style="color: #0000ff">int</span><span style="color: #000000">,</span><span style="color: #0000ff">int</span><span style="color: #000000">,TupleEnd&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;)(</span><span style="color: #800080">1</span><span style="color: #000000">,</span><span style="color: #800080">2</span><span style="color: #000000">,</span><span style="color: #800080">3</span><span style="color: #000000">,</span><span style="color: #800080">4</span><span style="color: #000000">,</span><span style="color: #800080">5</span><span style="color: #000000">,</span><span style="color: #800080">6</span><span style="color: #000000">,</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;TupleEnd&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;(</span><span style="color: #800080">7</span><span style="color: #000000">))</span></div><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;大于七个元素的元组，七个元素以上的使用TupleNested包装，下面的代码，F#可以正确的转换为(1,2,3,4,5,6,7,8)。&nbsp;</p><p>&nbsp;</p><div class="cnblogs_code"><!--<br  /><br  />Code highlighting produced by Actipro CodeHighlighter (freeware)<br  />http://www.CodeHighlighter.com/<br  /><br  />--><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;TupleNested&lt;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;&gt;&gt;<br />&nbsp;&nbsp;(</span><span style="color: #800080">1</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">2</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">3</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">4</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">5</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">6</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;TupleNested&lt;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;&gt;(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;(</span><span style="color: #800080">7</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">8</span><span style="color: #000000">)))</span></div><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;为了给大家一个直观的映象，我给出完整的调用例子。&nbsp;&nbsp;&nbsp;&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;首先请建立一个c#类库工程，引用FSharp.Core.dll&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;</p><div class="cnblogs_code"><!--<br  /><br  />Code highlighting produced by Actipro CodeHighlighter (freeware)<br  />http://www.CodeHighlighter.com/<br  /><br  />--><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />using&nbsp;System;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />using&nbsp;System.Collections.Generic;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />using&nbsp;System.Linq;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />using&nbsp;System.Text;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />using&nbsp;Microsoft.FSharp.Core;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">namespace</span><span style="color: #000000">&nbsp;TestFSharpTuple<br /><img id="Codehighlighter1_143_1735_Open_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_143_1735_Closed_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" style="display: none" alt="" /></span><span id="Codehighlighter1_143_1735_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_143_1735_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Class1<br /><img id="Codehighlighter1_173_1733_Open_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_173_1733_Closed_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_173_1733_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_173_1733_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;&nbsp;T1<br /><img id="Codehighlighter1_240_329_Open_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_240_329_Closed_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_240_329_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_240_329_Open_Text"><span style="color: #000000">{<br /><img id="Codehighlighter1_258_319_Open_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_258_319_Closed_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get&nbsp;</span><span id="Codehighlighter1_258_319_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_258_319_Open_Text"><span style="color: #000000">{&nbsp;return&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;(</span><span style="color: #800080">1</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">2</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">3</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">4</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">5</span><span style="color: #000000">);&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;&nbsp;T2<br /><img id="Codehighlighter1_405_510_Open_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_405_510_Closed_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_405_510_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_405_510_Open_Text"><span style="color: #000000">{<br /><img id="Codehighlighter1_423_500_Open_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_423_500_Closed_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get&nbsp;</span><span id="Codehighlighter1_423_500_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_423_500_Open_Text"><span style="color: #000000">{&nbsp;return&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;(</span><span style="color: #800080">1</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">2</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">3</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">4</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">5</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">6</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">7</span><span style="color: #000000">);&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;TupleEnd&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;&gt;&nbsp;T3<br /><img id="Codehighlighter1_596_730_Open_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_596_730_Closed_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_596_730_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_596_730_Open_Text"><span style="color: #000000">{<br /><img id="Codehighlighter1_614_720_Open_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_614_720_Closed_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get&nbsp;</span><span id="Codehighlighter1_614_720_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_614_720_Open_Text"><span style="color: #000000">{&nbsp;return&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;TupleEnd&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;&gt;(</span><span style="color: #800080">1</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">2</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">3</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">4</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">5</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">6</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;TupleEnd&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;(</span><span style="color: #800080">7</span><span style="color: #000000">));&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;TupleNested&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;&gt;&nbsp;T4<br /><img id="Codehighlighter1_819_1020_Open_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_819_1020_Closed_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_819_1020_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_819_1020_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get<br /><img id="Codehighlighter1_849_1010_Open_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_849_1010_Closed_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_849_1010_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_849_1010_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;TupleNested&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;&gt;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(</span><span style="color: #800080">1</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">2</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">3</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">4</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">5</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">6</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;TupleNested&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;(</span><span style="color: #800080">7</span><span style="color: #000000">));<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;TupleNested&lt;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;&gt;&gt;&nbsp;T5<br /><img id="Codehighlighter1_1121_1370_Open_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_1121_1370_Closed_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1121_1370_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_1121_1370_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get<br /><img id="Codehighlighter1_1151_1360_Open_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_1151_1360_Closed_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1151_1360_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_1151_1360_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;TupleNested&lt;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;&gt;&gt;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(</span><span style="color: #800080">1</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">2</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">3</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">4</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">5</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">6</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;TupleNested&lt;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;&gt;(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;(</span><span style="color: #800080">7</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">8</span><span style="color: #000000">)));<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;TupleNested&lt;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;&gt;&gt;&nbsp;T6<br /><img id="Codehighlighter1_1471_1727_Open_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_1471_1727_Closed_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1471_1727_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_1471_1727_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get<br /><img id="Codehighlighter1_1501_1717_Open_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_1501_1717_Closed_Image"  src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1501_1717_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_1501_1717_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;&nbsp;TupleNested&lt;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;&gt;&gt;<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(</span><span style="color: #800080">1</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">2</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">3</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">4</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">5</span><span style="color: #000000">,&nbsp;&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;TupleNested&lt;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;&gt;(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Tuple&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">,</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;(</span><span style="color: #800080">6</span><span style="color: #000000">,</span><span style="color: #800080">7</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">8</span><span style="color: #000000">)));<br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span></div><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在F#中分别调用&nbsp;</p><p>&nbsp;</p><div class="cnblogs_code"><!--<br  /><br  />Code highlighting produced by Actipro CodeHighlighter (freeware)<br  />http://www.CodeHighlighter.com/<br  /><br  />--><span style="color: #000000"><br />printfn&nbsp;</span><span style="color: #800000">&quot;</span><span style="color: #800000">%A</span><span style="color: #800000">&quot;</span><span style="color: #000000">&nbsp;TestFSharpTuple.Class1.T1<br />printfn&nbsp;</span><span style="color: #800000">&quot;</span><span style="color: #800000">%A</span><span style="color: #800000">&quot;</span><span style="color: #000000">&nbsp;TestFSharpTuple.Class1.T2<br />printfn&nbsp;</span><span style="color: #800000">&quot;</span><span style="color: #800000">%A</span><span style="color: #800000">&quot;</span><span style="color: #000000">&nbsp;TestFSharpTuple.Class1.T3<br />printfn&nbsp;</span><span style="color: #800000">&quot;</span><span style="color: #800000">%A</span><span style="color: #800000">&quot;</span><span style="color: #000000">&nbsp;TestFSharpTuple.Class1.T4<br />printfn&nbsp;</span><span style="color: #800000">&quot;</span><span style="color: #800000">%A</span><span style="color: #800000">&quot;</span><span style="color: #000000">&nbsp;TestFSharpTuple.Class1.T5<br />printfn&nbsp;</span><span style="color: #800000">&quot;</span><span style="color: #800000">%A</span><span style="color: #800000">&quot;</span><span style="color: #000000">&nbsp;TestFSharpTuple.Class1.T6</span></div><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;你会发现调用T2,T4均出错。T6不会出错，但可能不是你想要的结果,T6的结果为(1,2,3,4,5,(6,7,8))</p><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;调用T2时的错误截图:</p><p>&nbsp;</p><p><img height="400" alt="" src="http://images.cnblogs.com/cnblogs_com/lvxuwen/error1.jpg" width="870" border="0" /></p><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;调用T4的错误截图:</p><p><img height="445" alt="" src="http://images.cnblogs.com/cnblogs_com/lvxuwen/error2.jpg" width="872" border="0" />&nbsp;</p><p>&nbsp;</p></div>]]></description>
      <category>2902</category>
      <dc:date.Taken>2009-3-20 10:48:42</dc:date.Taken>
    </item>
    <item>
      <title>从这里开始学习F#</title>
      <author>Myshuiyue</author>
      <link>http://qianxun.net/Post/2008/10/4607.shtml</link>
      <pubDate>14 Oct 2008 11:50:54</pubDate>
      <guid>http://qianxun.net/Post/2008/10/4607.shtml</guid>
      <description><![CDATA[<div><font size="1"><span style="font-size: x-small"><a href="http://strangelights.com/" target="_blank"><font color="#000000" size="1">Robert Pickering</font></a><font size="1">是《</font></span><span style="font-size: x-small"><a href="http://www.amazon.com/dp/1590597575?tag=strangelights-20&amp;camp=14573&amp;creative=327641&amp;linkCode=as1&amp;creativeASIN=1590597575&amp;adid=1D57TCQVYYTRZHF7DBY3&amp;"><font color="#000000" size="1">Foundations of F#</font></a><font size="1">》</font></span>一书的作者，他最近创建了这个关于F#的<span style="font-size: x-small"><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/HomePage.html" target="_blank"><font color="#000000">Wiki</font></a>，这里是开始学习F#绝好的地方。</span></font><div class="postBody"><p>该Wiki目前包含了如下内容：F#编程的笔记，F#的书籍和在线杂志，F#的应用和示例，F#类库，F#的Code Snippets，F#方面的文章以及F#的工具，这是继<a href="http://cs.hubfs.net/" target="_blank"><font color="#000000">hubFS</font></a>之后又一个F#知识的集中地，相信F#爱好者以后学习会更方便的！</p><p>先把这些好东东抓过来分享下 :)</p><ul>    <li>Some F# Programming notes (basic)    <ul>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/TipsForBeginners.html"><font color="#000000">Tips for Beginners</font></a> - Getting Started with F#</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/ListsAndArrays.html"><font color="#000000">Lists and Arrays</font></a> - Tuples, Lists, Vectors, Arrays and other basic collections</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/FormattingTipsForCodeWithActions.html"><font color="#000000">Notes on imperative programming with F#</font></a> - How to format imperative code</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/CoreLanguageSyntaxExamples.html"><font color="#000000">Learning the syntax for Core F# Programming</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/ObjectModelSyntaxExamples.html"><font color="#000000">Learning the syntax for Object-Oriented F# Programming</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/FAQ.html"><font color="#000000">FAQ</font></a> (language FAQ)</li>        <li><a href="http://www.ffconsultancy.com/dotnet/fsharp/"><font color="#000000">Introduction to the F# top level</font></a> - tutorial video</li>    </ul>    </li>    <li>Some F# Books and Online Journals    <ul>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/FoundationsOfFSharp.html"><font color="#000000">Foundations of F#</font></a></li>        <li><a href="http://www.ffconsultancy.com/products/fsharp_journal/"><font color="#000000">The F#.NET Journal</font></a></li>        <li><a href="http://www.ffconsultancy.com/products/fsharp_for_scientists/"><font color="#000000">F# for Scientists</font></a></li>        <li><a href="http://www.apress.com/book/view/1590598504"><font color="#000000">Expert F#</font></a></li>    </ul>    </li>    <li>Some F# Applications and Samples    <ul>        <li><a href="http://www.codeplex.com/vslab"><font color="#000000">VSLab</font></a> - Visual Studio extension for creating a <a href="http://strangelights.com/fsharp/wiki/WikiEdit.aspx?topic=FSharpWiki.MatLab&amp;return=FSharpWiki.HomePage"><font color="#000000">MatLab</font></a> like environment based on F#</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/LightCycles.html"><font color="#000000">LightCycles</font></a></li>        <li><a href="http://lucacardelli.name/BioComputing.htm"><font color="#000000">SPiM Player</font></a> - Stochastic Pi-Calculus Simulator</li>        <li><a href="http://blogs.msdn.com/dsyme/archive/2006/12/06/using-fsharp-to-help-show-we-re-not-neanderthals.aspx"><font color="#000000">Genome Assembly Viewer</font></a> - by the Joint Genome Institute</li>        <li><a href="http://www.strangelights.com/fsharp/ChineseChess.aspx"><font color="#000000">Chess</font></a> - chinese chess game</li>        <li><a href="http://www.cis.upenn.edu/~stse/javac/"><font color="#000000">Fjavac</font></a> - functional Java 5 compiler</li>        <li><a href="http://www.cis.upenn.edu/~stse/javac/"><font color="#000000">Ocfgc</font></a> - ordered generalized LR (GLR) parser generator with Tomita's parsing</li>        <li><a href="http://www.derivativesone.com/"><font color="#000000">Derivatives One</font></a> - new application for derivatives pricing utilising F# models</li>    </ul>    </li>    <li>Some F# Programming notes    <ul>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/MonoLinux.html"><font color="#000000">Using F# on Mono/Linux</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/CallingC.html"><font color="#000000">Calling C code from F#</font></a> - P/Invoke, pinning and all that</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/ObjectsAndAllThat.html"><font color="#000000">Objects and all that</font></a> - How to use classes</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/InterfacesAndFSharpTypes.html"><font color="#000000">Interfaces and F# types</font></a> - How classes look from C#</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/HeterogeneousCollections.html"><font color="#000000">Coding Heterogenous Collections</font></a> - How to code lists and other collections containing items of multiple types</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/SetsTreesAndComparison.html"><font color="#000000">Sets, Trees and Comparison Functions</font></a> - Techniques to write data strucutres parameterized by comparison functions and other 'semantic operations associated with types'</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/RecordsWithNonUniqueFieldNames.html"><font color="#000000">Using records with non-unique field names</font></a> - Hints on programming with records</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/HowToLearnOcamlOrSML.html"><font color="#000000">Notes on learning F#</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/OCamlCrossCompilation.html"><font color="#000000">Notes on cross-compiling with OCaml</font></a></li>    </ul>    </li>    <li>F# Libraries:    <ul>        <li><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/cpref_start.asp"><font color="#000000">The .NET Framework Class Libraries</font></a> (external link)</li>        <li><a href="http://research.microsoft.com/fsharp/manual/namespaces.html"><font color="#000000">The F# Libraries Online Documentation</font></a> (external link)</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/MLLib.html"><font color="#000000">MLLib</font></a> aims to support smooth OCAML cross compilation (stubs: <a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/Set.html"><font color="#000000">Set</font></a>, <a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/Map.html"><font color="#000000">Map</font></a> and <a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/List.html"><font color="#000000">List</font></a>)</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/FSLib.html"><font color="#000000">FSLib</font></a> provides the environment (usually) available to all F# code.</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/FSharpLAPACK.html"><font color="#000000">F# and LAPACK</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/FSharpAndMATLAB.html"><font color="#000000">F# and MATLAB</font></a> - F# for those familiar with MATLAB</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/FSharpCharting.html"><font color="#000000">F# and Charting</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/FSharpExcelAutomation.html"><font color="#000000">F# and using Excel Automation</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/FSharpOleDb.html"><font color="#000000">Using OleDB from F#</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/FSharpWinForms.html"><font color="#000000">F# and Windows Forms (WinForms)</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/FSharpIrrlict.html"><font color="#000000">F# and Irrlicht 3D Engine</font></a></li>        <li><a href="http://code.google.com/p/fsunit/"><font color="#000000">FsUnit</font></a> - Test/Specification Framework for F#</li>    </ul>    </li>    <li>F# Code Snippets (old <a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/CodeSnippets.html"><font color="#000000">CodeSnippets</font></a> index)    <ul>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/SomeBasicSamples.html"><font color="#000000">Some Basic Samples</font></a></li>        <li>Using <a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/InteractiveWindows.html"><font color="#000000">Interactive Data Display Windows</font></a> from Raj</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/AvalonHelloWorld.html"><font color="#000000">Avalon Hello World</font></a></li>        <li><a href="http://dcooney.com/archive/2004/06/03/589.aspx"><font color="#000000">A Regular Expression Interpreter</font></a> from <a href="http://www.dcooney.com/"><font color="#000000">Dominic's Blog</font></a></li>        <li><a href="http://www.dcooney.com/ViewEntry.aspx?ID=453"><font color="#000000">Testing F# code with NUnit</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/PicklingSample.html"><font color="#000000">Pickling Sample</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/MSNSearchSnippet.html"><font color="#000000">MSN Search</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/WMEncoderSnippet.html"><font color="#000000">WM Encoder</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/SimpleWebServiceConsumer.html"><font color="#000000">Simple Web Service Consumer</font></a></li>        <li><a href="http://www.ffconsultancy.com/dotnet/fsharp/sudoku/"><font color="#000000">Sudoku solver</font></a> - Sudoku solver with GUI</li>        <li><a href="http://www.ffconsultancy.com/dotnet/fsharp/ray_tracer/"><font color="#000000">Ray tracer</font></a> - Ray Tracer with <a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/WinForms.html"><font color="#000000">WinForms</font></a> GUI</li>        <li><a href="http://www.ffconsultancy.com/dotnet/fsharp/teapot/"><font color="#000000">Teapot demo</font></a> - Minimal <a href="http://strangelights.com/fsharp/wiki/WikiEdit.aspx?topic=FSharpWiki.DirectX&amp;return=FSharpWiki.HomePage"><font color="#000000">DirectX</font></a> demo</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/LightCycles.html"><font color="#000000">Light cyles</font></a> - <a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/WinForms.html"><font color="#000000">WinForms</font></a> mini-game sample</li>    </ul>    </li>    <li>F# articles (old <a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/ArticlesAndExplanations.html"><font color="#000000">ArticlesAndExplanations</font></a> index).    <ul>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/FSharpAndOCaml.html"><font color="#000000">F# and OCaml</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/UseOfRecords.html"><font color="#000000">The Use of Records in Map, Set and Hashtbl to simulate functors</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/HowToBuildRecords.html"><font color="#000000">How to build record values</font></a> - Tips on how to build record values that are like 'objects', e.g. where one method of the object requires another</li>    </ul>    </li>    <li>F# tools:    <ul>        <li><a href="http://strangelights.com/fsharp/wiki/WikiEdit.aspx?topic=FSharpWiki.FSC&amp;return=FSharpWiki.HomePage"><font color="#000000">FSC</font></a> - the command line compiler</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/fsi.html"><font color="#000000">fsi</font></a> - the command line interactive environment</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/fslex.html"><font color="#000000">fslex</font></a> - the lexer generator</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/fsyacc.html"><font color="#000000">fsyacc</font></a> - the parser generator</li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/VisualStudioPlugin.html"><font color="#000000">The Visual Studio Plug-In</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/ProfilingToolsForFSharp.html"><font color="#000000">Profiling Tools for F#</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/DebuggingWithVisualStudio.html"><font color="#000000">Debugging with Visual Studio</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/WikiEdit.aspx?topic=FSharpWiki.DebuggingWithCorbdg&amp;return=FSharpWiki.HomePage"><font color="#000000">Debugging with cordbg.exe</font></a></li>    </ul>    </li>    <li>F# Trouble shooting:    <ul>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/VSLocksUp.html"><font color="#000000">VSLocksUp</font></a> observed after installing VS SDK over F#</li>    </ul>    </li>    <li>Links to other <a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/FSharpResources.html"><font color="#000000">F# Resources</font></a></li>    <li>Feedback:    <ul>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/SuggestionsForFSharp.html"><font color="#000000">Suggestions for F#</font></a></li>        <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/ThingsILikeAboutFSharp.html"><font color="#000000">Things I like about F#</font></a> - happy user quotes</li>    </ul>    </li>    <li><a href="http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/ScreenShots.html"><font color="#000000">Screen Shots</font></a> - grabs of Visual Studio Mode, demos etc.</li></ul></div></div>]]></description>
      <category>2902</category>
      <dc:date.Taken>2009-3-20 10:48:42</dc:date.Taken>
    </item>
    <item>
      <title>F#：在不久的将来对其会有哪些期待？</title>
      <author>Myshuiyue</author>
      <link>http://qianxun.net/Post/2008/10/4601.shtml</link>
      <pubDate>14 Oct 2008 11:36:42</pubDate>
      <guid>http://qianxun.net/Post/2008/10/4601.shtml</guid>
      <description><![CDATA[<div>F#研究团队的Brian McNamara和Don Syme在最近的一些随笔当中，泄露了他们在不久的将来的一些相关计划。根据Syme的关于F#产品化的博客随笔，这个团队计划发布一个F#微软研究版本的四月更新。这个版本将具有： <blockquote id="tx4o"><ul id="m:77">    <li id="gx1g">包含了针对F#语言核心的超过100个的错误修正和特性完成</li>    <li id="gx1g">解决了一些已经被拖了一段时间的语言设计问题</li>    <li id="gx1g">符合F#语言规范草案<br id="wj7q" />    &nbsp;</li></ul></blockquote><p id="crju">Brian McNamara也透露将可能在这个夏天某个时候发布一个CTP版。在这个发布中包含的主要特性将会是：<br id="zmbp" />&nbsp;</p><blockquote id="hxj5"><ul id="ao1x">    <li id="tkez">fsc.exe，所谓的F#语言编译器</li>    <li id="tkez">fsi.exe，交互命令环境</li>    <li id="tkez">F#函数库（囊括从不可变列表到异步计算函数库的一些常用的东西）</li>    <li id="tkez">一个msbuild任务，让你能从命令行构建F#&ldquo;.fsproj&rdquo;工程</li></ul></blockquote><p id="cwtw">把F#和Visual Studio开发环境集成起来的工作在逐步进行当中，其可以和免费的Visual Studio Shell一起工作，也可以和Visual Studio 2008集成在一起。为了达到这个目标，F#将包含如下组件：</p><blockquote id="w-2q"><ul id="tlrs">    <li id="lch2">F#语言服务，其提供语法高亮、智能感知、工具提示等功能</li>    <li id="lch2">F#项目系统，其让你能添加删除.fs文件、引用dlls等</li>    <li id="lch2">F#交互窗口，一个把fsi托管在Visual Studio中的功能<br id="inw1" />    &nbsp;</li></ul></blockquote><p id="q4.s">当前F#的RC版是1.9.3，最新的一个更新是2008年1月18*发布的1.9.3.14。<br id="dqph" />&nbsp;</p></div>]]></description>
      <category>2902</category>
      <dc:date.Taken>2009-3-20 10:48:42</dc:date.Taken>
    </item>
    <item>
      <title>F#成为Visual Studio的上等公民</title>
      <author>Myshuiyue</author>
      <link>http://qianxun.net/Post/2008/10/4596.shtml</link>
      <pubDate>14 Oct 2008 11:33:29</pubDate>
      <guid>http://qianxun.net/Post/2008/10/4596.shtml</guid>
      <description><![CDATA[<div><p><font color="#666666"><span style="font-weight: bold">微软为Visual Studio开发平台添加了最新的稳定版语言F#,成为VS的主要编程语言之一.</span><br /></font>F#语言基于功能性编程语言概念.功能性编程语言将计算看做是数学函数的赋值,对于需要使用大量数学符号的某些领域专业人员来说,F#语言的数学特性颇具吸引力.Somasegar表示,F#的目标是成为.Net上的&ldquo;上等公民&rdquo;<br /><br />&nbsp;</p><p>另外微软研究院也曾对F#语言做出过解释,F#语言集安全、性能、脚本与Modern Runtime系统(Java虚拟机和微软通用Runtime)等多种优势于一体,并支持Python等交互式脚本语言、强类型推理、ML的安全性.另 外,F#语言可以访问access.net库以及其他数据库工具软件.</p></div>]]></description>
      <category>2902</category>
      <dc:date.Taken>2009-3-20 10:48:42</dc:date.Taken>
    </item>
    <item>
      <title>微软计划在开发平台集成F#语言 基于功能编程概念</title>
      <author>Myshuiyue</author>
      <link>http://qianxun.net/Post/2008/10/4595.shtml</link>
      <pubDate>14 Oct 2008 11:32:34</pubDate>
      <guid>http://qianxun.net/Post/2008/10/4595.shtml</guid>
      <description><![CDATA[<div><div><p>微软开发人员部门的副总裁Somasegar在其博客中写道，微软计划在其Visual Studio开发平台中集成F#编程语言。</p><p>但是，微软还没有公布正式的发布计划。</p><p>Somasegar表示，F#基于功能编程的概念。功能编程语言将计算看作是数学函数的赋值，数学特性使得它对需要大量使用数学符号的领域的专业人士颇有吸引力。</p><p>微软研究院表示，F#集类型安全、性能、脚本、在现代运行时间库上运行的优势于一体，它支持Python等交互式脚本语言、强类型推理、ML的安全性。F#能够访问.Net库和数据库工具。</p><p>Somasegar表示，F#的目标是成为.Net上的&ldquo;一等公民&rdquo;，将运行在微软的CLR（Common Language Runtime，通用语言运行时间库）。</p></div></div>]]></description>
      <category>2902</category>
      <dc:date.Taken>2009-3-20 10:48:42</dc:date.Taken>
    </item>
    <item>
      <title>F# 微软的函数式程序设计语言</title>
      <author>Myshuiyue</author>
      <link>http://qianxun.net/Post/2008/10/4593.shtml</link>
      <pubDate>14 Oct 2008 11:31:21</pubDate>
      <guid>http://qianxun.net/Post/2008/10/4593.shtml</guid>
      <description><![CDATA[<div><div><p><a href="http://www.builder.com.cn/list-0-0-53009-1-1.htm"><font color="#000000">F#，</font></a>微软研究院正在研究的一种函数式程序设计语言。其灵感来自于 OCaml。其突出的优势是，与visual Studio 2005 紧密整合。<a href="http://www.builder.com.cn/list-0-0-53009-1-1.htm"><font color="#000000">F#</font></a> 可以与.net 平台的其它语言例如C#、VB.net 相互调用操作。想了解更多关于<a href="http://www.builder.com.cn/list-0-0-53009-1-1.htm"><font color="#000000">F#，</font></a>可以访问如下内容：</p><p>Home of F# at Microsoft Research: <a href="http://research.microsoft.com/fsharp" target="_blank"><font color="#000000">http://research.microsoft.com/fsharp</font></a></p><p>Don Syme's Blog: <a href="http://blogs.msdn.com/dsyme" target="_blank"><font color="#000000">http://blogs.msdn.com/dsyme</font></a></p><p>Community site for F#: <a href="http://cs.hubfs.net/" target="_blank"><font color="#000000">http://cs.hubfs.net</font></a></p><p>关于 函数试程序设计语言：</p><p>1) 函数式程序设计是一种强调表达式赋值而不是执行命令的程序设计。Erlang程序设计语言就是一种函数式程序设计语言。由于改变程序中某部分的全局变量可能对程序其它某部分有意想不到的影响，Erlang避免了对在多个函数中常用的全局变量的使用。　　</p><p>2) 在ITU-TS较早的定义中，函数式程序设计是&ldquo;主要以可能嵌套的函数过程调用的顺序来构造程序的一种方法。&rdquo;函数过程是指相关的简单程序，它被其它程序调用，并且从调用它的程序中获得且返还数值。</p></div></div>]]></description>
      <category>2902</category>
      <dc:date.Taken>2009-3-20 10:48:42</dc:date.Taken>
    </item>
    <item>
      <title>F#,印度数学教育与优秀编程</title>
      <author>Justin James</author>
      <link>http://qianxun.net/Post/2008/10/4590.shtml</link>
      <pubDate>14 Oct 2008 11:27:49</pubDate>
      <guid>http://qianxun.net/Post/2008/10/4590.shtml</guid>
      <description><![CDATA[<div><div><p>这个周末，我终于可以坐下来做我在一年来一直承诺要做的事情：我开始应用F#。这次体验相当有趣。十多年来，我第一次不能只是通过坐着瞧一些样本代码来理解一门语言。</p><p>这次体验强化了当前通用编程语言的可悲状况。确实，过去我曾多次抱怨过VB.NET、C#、Java等语言的平庸之处。但明白我的所作所为对我的思考方式有着重大影响，这引起我的强烈兴趣。</p><p>我在11年级使用EdScheme时初次遇到一种函数编程语言。虽然F#的语法与EdScheme大有不同（EdScheme是Scheme的一个版本，是Lisp的一个术语；F#以OCaml为基础），它们的许多原理是一样的，特别是在&ldquo;标签&rdquo;与&ldquo;值&rdquo;相对的概念方面。</p><p>在函数编程语言中，有一种避免（或完全禁止）&ldquo;值&rdquo;概念的倾向。相反，每个标识符实际上作为一个标签，引用一个特殊的函数。</p><p>例如，&ldquo;let x=5+y&rdquo;并不是设定x的值等于y加5得到的值。相反，x是一个函数，调用后，它计算5+y并返回结果。如你所见，这种思维方式与我们大多数人学会的过程代码截然不同。</p><p>说明一下，我在&ldquo;过程代码领域&rdquo;中包含了面向对象（OO）代码，因为在最原始、低级的层次，每个OO程序都以一个非常传统、过程化的思考过程结束。换句话说，OO只是访问和编写过程代码的一个非常优秀和有组织的方法。</p><p>姑且不谈那一点。我发现我的思维很难接受某些概念。让人感到沮丧的是，我过去了解这种情况。并不仅仅是因为我有些迟钝或缺乏练习，我发现自己难以接受F#的思考方式。</p><p>想象一下，如果你去骑自行车，但由于你开了15年的汽车，你的脚总是不由自主的伸向油门处；你说的情况和这类似。</p><p>这让我记起我在几个月前的一次谈话。与我交谈的是一位由印度访美的程序员，他和我彼此相当熟悉，他做程序员已有相当长一段时间了，可能和我的时间一样长。他和我谈到教育。</p><p>众所周知，印度、中国和许多其它国家在数学教育上远远超过美国。因此我问他在印度如何教授数学。我的问题让他感到十分困惑，*像学习数学还有别的方法，而这是他第一次听说似的。</p><p>&ldquo;从书本，通过黑板上的例子（学习数学）；还有别的方法吗？&rdquo;我向他询问计算器和电脑的使用情况，这两种工具在美国的数学教育中应用广泛。</p><p>他对我解释说，印度高中禁止使用计算器；大学也只允许使用计算器进行基本的计算（如加、减、乘、除、指数、平方根、对数和自然对数）；他们反对使用计算器甚至达到这样的程度：使用计算器可能会招致奚落和羞辱。</p><p>这听起来与美国的教育环境全然不同，在美国，学校如今要求七年级的学生拥有T1-85&mdash;&mdash;一种可能比巡航导弹的导航系统还更加强大的计算器。</p><p>所有这一切归结于基本的思维方法。编写代码（并写出*代码）需要某种思维能力。我的多次经验证明：一旦某种思维方式得以确定，就很难发生改变。对F#而言，当我在经验极为不足时可以轻松学会的思维方式却因为如今经验丰富而变得艰难起来。</p><p>一所摇摇欲坠的房子建立在优秀的早期教育打下的牢固思维基础之上，如果我希望建立一幢漂亮的新房子，就必须将其摧毁。但如果我推倒这间危房，至少我还有一个坚固的基础，干净的水井和完整的管道设备。</p><p>那些企图在松软地基上建立一间摇摇欲坠的房子的人将会遇到严重的问题。这也是我为何如此关注普通教育的缘由。</p><p>我知道我可以学会F#。虽然我的学习过程要比平常人困难得多，但学会的可能性依然很大。我只是需要一直自我提醒函数语言的运行机制，这样就不存在什么问题。</p><p>但对于缺乏那种经历的人而言，缺少基本的思维基础，他们怎么能学会它呢？对此我一片茫然。了解一种函数编程语言是成为程序员的先决条件吗？当然不是。</p><p>许多优秀的程序员并没有接触过函数编程语言。但是，从这种经历汲取的思维方法却异常宝贵。我知道，我学习EdScheme的经历对我成为一名优秀的程序员大有裨益，即使一段时间以来我一直陷入&ldquo;通用OO语言&rdquo;的怪圈之中。</p><p>所以，与印度朋友交谈后，我感到十分担心。在我看来，印度、中国和其它许多国家的学校似乎为他们的学生打下非常优质的普通教育基础。</p><p>我看着我的兄弟姐妹（我比他们大得多）学习的&ldquo;数学&rdquo;，我可不希望让我的孩子接受这种糟糕的&ldquo;教育&rdquo;（我还没有正式成为父亲，但几天或几个星期后就会做父亲！）我喜欢看到人们接受最*的教育。电脑和高级计算器打下的数学基础并不能使你成为一名优秀的程序员。</p><p>我想，一旦我完成这段F#经历（我希望了解更多内容，以便评估它在现实编程中的适应性），就该是返回基础理论的时候了。几个星期以前，一名读者推荐了几本ER Tufte的书籍，我想我应以此为起点。</p><p>在我当前的任务中，自己动手的编程工作已减到最少。我需要再次温习我的编程原理，尽量做到最*。（文/Justin James）</p></div></div>]]></description>
      <category>2902</category>
      <dc:date.Taken>2009-3-20 10:48:42</dc:date.Taken>
    </item>
  </channel>
</rss>