<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Tim Ng</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/timng/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/timng/feed.xml</link>
    <description>F# for the masses</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:27:16 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Where do you use F#?</title>
      <link>https://docs.microsoft.com/archive/blogs/timng/where-do-you-use-f</link>
      <pubDate>Thu, 13 May 2010 12:50:49 GMT</pubDate>
      <dc:creator><![CDATA[Timothy Ng]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/timng/2010/05/13/where-do-you-use-f/</guid>
      <description><![CDATA[Recently on StackOverflow there was a question asked about “what areas might the use of F# would be...]]></description>
      <content:encoded><![CDATA[<p>Recently on StackOverflow there was a question asked about “<a href="http://stackoverflow.com/questions/2785029/in-what-areas-might-the-use-of-f-be-more-appropriate-than-c">what areas might the use of F# would be more appropriate then C#</a>”. Some of the answers are very insightful – take a look and see if you agree or disagree! You’ll notice that my good friend <a href="http://blogs.msdn.com/JaredPar">Jared</a> commented on his own experience using F# on his <a href="http://github.com/jaredpar/VsVim">Vim</a> project I <a href="http://blogs.msdn.com/timng/archive/2010/05/07/vs2010-vim.aspx">posted</a> about.</p>]]></content:encoded>
    </item>
    <item>
      <title>VS2010 + VIM</title>
      <link>https://docs.microsoft.com/archive/blogs/timng/vs2010-vim</link>
      <pubDate>Fri, 07 May 2010 16:29:12 GMT</pubDate>
      <dc:creator><![CDATA[Timothy Ng]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/timng/2010/05/07/vs2010-vim/</guid>
      <description><![CDATA[As you may know, I am a diehard VIM user. Thankfully, Jared, a big F# fan (Jared and I used to work...]]></description>
      <content:encoded><![CDATA[<p>As you may know, I am a diehard <a href="http://www.vim.org">VIM</a> user. Thankfully, <a href="http://blogs.msdn.com/jaredpar">Jared</a>, a big F# fan (Jared and I used to work on VB together), has written a plug-in for VS2010 called <strong>VsVim</strong> which supports VIM emulation in VS2010. If you are a VIM user, this plug-in is essential! I can’t imagine using VS without this plug-in.</p>  <p>To install VsVim, use the Visual Studio 2010 Extension Manager, and search for VsVim in the Online Gallery.</p>  <p>Jared has also released the source of VsVim - <a href="http://github.com/jaredpar/VsVim">http://github.com/jaredpar/VsVim</a>. </p>  <p>As a bonus, the core engine is written in F#!</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/timng/WindowsLiveWriter/VS2010VIM_C3D6/image_2.png" original-url="http://blogs.msdn.com/blogfiles/timng/WindowsLiveWriter/VS2010VIM_C3D6/image_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/timng/WindowsLiveWriter/VS2010VIM_C3D6/image_thumb.png" original-url="http://blogs.msdn.com/blogfiles/timng/WindowsLiveWriter/VS2010VIM_C3D6/image_thumb.png" width="736" height="507" /></a></p>]]></content:encoded>
    </item>
    <item>
      <title>F# + WPF + Events</title>
      <link>https://docs.microsoft.com/archive/blogs/timng/f-wpf-events</link>
      <pubDate>Thu, 06 May 2010 18:46:23 GMT</pubDate>
      <dc:creator><![CDATA[Timothy Ng]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/timng/2010/05/06/f-wpf-events/</guid>
      <description><![CDATA[I recently had to do some travelling for the VS launch event in Las Vegas and QCON event in Beijing....]]></description>
      <content:encoded><![CDATA[<p>I recently had to do some travelling for the VS launch event in Las Vegas and QCON event in Beijing. One of the things thats nice about travelling is that it gives you time to do some things you may not otherwise do - in my case, I had a chance to try to (re) learn WPF and see how I can use F# with WPF. This sample is a result of that. </p>  <p>This sample builds on the <a href="http://blogs.msdn.com/dsyme/archive/2010/01/10/async-and-parallel-design-patterns-in-f-reporting-progress-with-events-plus-twitter-sample.aspx">F# Twitter streaming sample</a> that Don blogged about. Our goal will be to take the sample and modify it to build a WPF UI on top of the twitter event stream so that we can visualize the tweets.</p>  <p><strong><a href="https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=timfsharpsamples&amp;ReleaseId=4326">Download the twitter streaming client sample</a></strong>.</p>  <p><strong>Strategy</strong></p>  <p>The overall implementation strategy is to implement an event handler for the twitter events and push updates into an observable collection, which is a WPF collection that can be data-bound to a UI control. XAML data binding is used to hook up the elements of the collection to the list box items.</p>  <p><strong>Details</strong></p>  <p>To start off, we have code loads the XAML file (which was compiled as a resource into the F# application) and then finds the controls we are interested in:</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:46adbf34-6b02-4126-a15c-738baf6b6955" class="wlWriterEditableSmartContent"> <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"> <div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px">Loading XAML into F#</div> <div style="background-color: #ffffff; max-height: 300px; overflow: auto; padding: 2px 5px;"><span style="color:#0000ff">let</span> w = Application.LoadComponent(<span style="color:#0000ff">new</span> System.Uri(<span style="color:#800000">&quot;/twitterstream;component/Window.xaml&quot;</span>, System.UriKind.Relative)) :?&gt; Window<br> <span style="color:#0000ff">let</span> b = w.FindName(<span style="color:#800000">&quot;buttonToggle&quot;</span>) :?&gt; Button<br> <span style="color:#0000ff">let</span> imageList = w.FindName(<span style="color:#800000">&quot;imageList&quot;</span>) :?&gt; ListBox</div> </div> </div>  <p>Next, we create an observable collection, bind it to the image list, and pass that to a function which sets up the event handler:</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f4a2306c-3444-4f5a-bbd3-b008c2b6e4f5" class="wlWriterEditableSmartContent"> <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"> <div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px">ObservableCollection</div> <div style="background-color: #ffffff; max-height: 300px; overflow: auto; padding: 2px 5px;"><span style="color:#0000ff">let</span> c = <span style="color:#0000ff">new</span> ObservableCollection&lt;UserStatus&gt;()<br> imageList.ItemsSource &lt;- c<br> setupEvent c</div> </div> </div>  <p>Here’s how we setup the event handler:</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:9d041b53-ab4d-4dd9-a61a-3bbe862cf197" class="wlWriterEditableSmartContent"> <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"> <div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px">Event Composition</div> <div style="background-color: #ffffff; max-height: 300px; overflow: auto; padding: 2px 5px;"><span style="color:#0000ff">let</span> setupEvent (c : ObservableCollection&lt;UserStatus&gt;) =<br>     twitterStream.NewTweet <br>     |&gt; every 20<br>     |&gt; Event.choose parseTweet<br>     |&gt; Event.add (<span style="color:#0000ff">fun</span> s <span style="color:#0000ff">-&gt;</span><br>                     System.Diagnostics.Debug.WriteLine(s.Status)<br>                     c.Insert(0, s) |&gt; ignore)</div> </div> </div>  <p>Notice that the event handler will eventually insert the parsed tweet into the observable collection. (If you are not familiar with events in F#, I will post a blog entry on this in the near future).</p>  <p>The parseTweet function takes the XML and returns UseStatus type:</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:5cf2bf99-eb80-44b5-9d9c-1af6b58cb3f9" class="wlWriterEditableSmartContent"> <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"> <div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px">Code Snippet</div> <div style="background-color: #ffffff; max-height: 300px; overflow: auto; padding: 2px 5px;"><span style="color:#0000ff">type</span> UserStatus = <br>     { UserName : string; <br>       ProfileImage : string; <br>       Status : string; <br>       StatusDate : DateTime }</div> </div> </div>  <p>Once we data bind the “root” object via F# code, the XAML code takes care of binding elements of the observable collection (which have type UserStatus). Here’s the interesting XAML code in the data template for the ListBox that binds the elements of the collection to the list box items:</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:62b24f5a-0b58-437d-9602-fbdc91fee84b" class="wlWriterEditableSmartContent"> <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"> <div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px">XAML</div> <div style="background-color: #ffffff; overflow: auto; padding: 2px 5px;"><span style="color:#a31515"></span><span style="color:#0000ff">&lt;</span><span style="color:#a31515">Image</span><span style="color:#ff0000"> Grid.Column</span><span style="color:#0000ff">=&quot;0&quot;</span><br>       <span style="color:#ff0000"> Source</span><span style="color:#0000ff">=&quot;{</span><span style="color:#a31515">Binding</span><span style="color:#ff0000"> Path</span><span style="color:#0000ff">=ProfileImage}&quot;</span><br>       <span style="color:#ff0000"> Stretch</span><span style="color:#0000ff">=&quot;Fill&quot;</span><br>       <span style="color:#ff0000"> Height</span><span style="color:#0000ff">=&quot;50&quot; /&gt;</span><br> <span style="color:#a31515"></span><span style="color:#0000ff">&lt;</span><span style="color:#a31515">Label</span><span style="color:#ff0000"> Grid.Column</span><span style="color:#0000ff">=&quot;1&quot;</span><br>       <span style="color:#ff0000"> Height</span><span style="color:#0000ff">=&quot;50&quot;&gt;</span><br>     <span style="color:#a31515"></span><span style="color:#0000ff">&lt;</span><span style="color:#a31515">TextBlock</span><span style="color:#ff0000"> Text</span><span style="color:#0000ff">=&quot;{</span><span style="color:#a31515">Binding</span><span style="color:#ff0000"> Path</span><span style="color:#0000ff">=Status}&quot;</span><br>               <span style="color:#ff0000"> TextWrapping</span><span style="color:#0000ff">=&quot;WrapWithOverflow&quot;</span><br>   <span style="color:#0000ff"> /&gt;</span><br> <span style="color:#a31515"></span><span style="color:#0000ff">&lt;/</span><span style="color:#a31515">Label</span><span style="color:#0000ff">&gt;</span></div> </div> </div>  <p></p>  <p>Notice that the image is bound to the URL specified in the ProfileImage field of the UserStatus type, and the Label content is bound to the Status field of the UserStatus type.</p>  <p><strong>Summary</strong></p>  <p>I hope this sample highlights how to integrate F# and F# events with WPF.</p>]]></content:encoded>
    </item>
    <item>
      <title>QCON 2010 Presentation Sample</title>
      <link>https://docs.microsoft.com/archive/blogs/timng/qcon-2010-presentation-sample</link>
      <pubDate>Tue, 27 Apr 2010 08:56:00 GMT</pubDate>
      <dc:creator><![CDATA[Timothy Ng]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/timng/2010/04/27/qcon-2010-presentation-sample/</guid>
      <description><![CDATA[I’ve posted the QCON 2010 F# presentation sample on my code gallery page. The QCON experience was...]]></description>
      <content:encoded><![CDATA[<P>I’ve posted the QCON 2010 <A href="https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=timfsharpdemosamples&amp;ReleaseId=4328" mce_href="https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=timfsharpdemosamples&amp;ReleaseId=4328">F# presentation sample</A> on my code gallery page. The QCON experience was very positive for me, and I had a great time both at QCON and hanging out with the MS MVPs in Beijing. Looking forward to the next time I can visit!</P>]]></content:encoded>
    </item>
    <item>
      <title>QCon 2010 Beijing and Chinese F# Blogs</title>
      <link>https://docs.microsoft.com/archive/blogs/timng/qcon-2010-beijing-and-chinese-f-blogs</link>
      <pubDate>Thu, 22 Apr 2010 22:26:02 GMT</pubDate>
      <dc:creator><![CDATA[Timothy Ng]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/timng/2010/04/22/qcon-2010-beijing-and-chinese-f-blogs/</guid>
      <description><![CDATA[I’m currently in Beijing, China attending the QCON conference and giving a presentation on F#. It...]]></description>
      <content:encoded><![CDATA[<p>I’m currently in Beijing, China attending the QCON conference and giving a presentation on F#. It has been a blast so far! Jeff has been a great host and he is an avid F# enthusiast in China – he has a blog (in Chinese) - <a href="http://blog.zhaojie.me">http://blog.zhaojie.me</a>.</p>  <p>In addition, the F# Shanghai team has been busy translating popular blogs written by members of our team from English to Chinese – you can see them here <a title="http://blog.joycode.com/fscti" href="http://blog.joycode.com/fscti">http://blog.joycode.com/fscti</a>.</p>  <p>I’ll be posting up the presentation and samples from my QCON 2010 Beijing talk soon!</p>]]></content:encoded>
    </item>
    <item>
      <title>F# Channel 9 at Visual Studio 2010 Launch Event</title>
      <link>https://docs.microsoft.com/archive/blogs/timng/f-channel-9-at-visual-studio-2010-launch-event</link>
      <pubDate>Mon, 12 Apr 2010 11:01:26 GMT</pubDate>
      <dc:creator><![CDATA[Timothy Ng]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/timng/2010/04/12/f-channel-9-at-visual-studio-2010-launch-event/</guid>
      <description><![CDATA[Channel9 will be doing interviews throughout the Visual Studio 2010 Launch Event at Las Vegas, and...]]></description>
      <content:encoded><![CDATA[<p><a href="https://channel9.msdn.com">Channel9</a> will be doing interviews throughout the Visual Studio 2010 Launch Event at Las Vegas, and at 11:30 AM PDT the Visual Studio Managed Language Team will be on the air! If you want to ask us any questions, send a tweet to <a href="http://www.twitter.com/ch9live">@ch9live</a> and watch it <a href="https://channel9.msdn.com/posts/NicFill/Channel-9-Live-at-Visual-Studio-2010-and-Silverlight-4-Launch/">here</a>!</p>]]></content:encoded>
    </item>
    <item>
      <title>F# Released!</title>
      <link>https://docs.microsoft.com/archive/blogs/timng/f-released</link>
      <pubDate>Mon, 12 Apr 2010 09:15:42 GMT</pubDate>
      <dc:creator><![CDATA[Timothy Ng]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/timng/2010/04/12/f-released/</guid>
      <description><![CDATA[Just a few moments ago, Bob Muglia announced the general availability of Visual Studio 2010 at the...]]></description>
      <content:encoded><![CDATA[<p>Just a few moments ago, Bob Muglia announced the general availability of Visual Studio 2010 at the launch event at Las Vegas. I am extremely proud to say that this event also means that the official release of F# is now released! Our team has worked extremely hard to bring the first release of F# to you, and we truly hope you enjoy your experience with F#.</p>  <p><a href="http://blogs.msdn.com/dsyme/archive/2010/04/12/f-2-0-released-as-part-of-visual-studio-2010.aspx">Don</a> has more details on F#, and be sure check out the <a href="http://www.fsharp.net">F# dev center</a> for more information.</p>  <p>I am currently at the launch event in Las Vegas, so if you are also taking part in the festivities and want to chat about F#, come seek me out at the VS booth or come to my session on F# on Tuesday, April 13th!</p>]]></content:encoded>
    </item>
    <item>
      <title>F# Quick Guides: Object Oriented Programming</title>
      <link>https://docs.microsoft.com/archive/blogs/timng/f-quick-guides-object-oriented-programming</link>
      <pubDate>Tue, 06 Apr 2010 10:21:00 GMT</pubDate>
      <dc:creator><![CDATA[Timothy Ng]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/timng/2010/04/06/f-quick-guides-object-oriented-programming/</guid>
      <description><![CDATA[@font-face {
	font-family: Cambria Math;
}
@font-face {
	font-family: calibri;
}
@font-face...]]></description>
      <content:encoded><![CDATA[<META name=Generator content="Microsoft Word 12 (filtered)">
<STYLE>@font-face {
	font-family: Cambria Math;
}
@font-face {
	font-family: calibri;
}
@font-face {
	font-family: consolas;
}
@font-face {
	font-family: Segoe UI;
}
@page section1 {size: 11.0in 8.5in; margin: 1.0in 1.0in 1.0in 1.0in; }
P.MsoNormal {
	LINE-HEIGHT: 115%; MARGIN: 0in 0in 10pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt
}
LI.MsoNormal {
	LINE-HEIGHT: 115%; MARGIN: 0in 0in 10pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt
}
DIV.MsoNormal {
	LINE-HEIGHT: 115%; MARGIN: 0in 0in 10pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt
}
H1 {
	PAGE-BREAK-AFTER: avoid; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: 115%; MARGIN: 12pt 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; FONT-FAMILY: "Segoe UI","sans-serif"; COLOR: #365f91; FONT-SIZE: 14pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-style-link: "Heading 1 Char"
}
H1.cxspfirst {
	PAGE-BREAK-AFTER: avoid; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: 115%; MARGIN: 12pt 0in 0pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; FONT-FAMILY: "Segoe UI","sans-serif"; COLOR: #365f91; FONT-SIZE: 14pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-style-link: "Heading 1 Char"
}
H1.cxspmiddle {
	PAGE-BREAK-AFTER: avoid; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: 115%; MARGIN: 0in 0in 0pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; FONT-FAMILY: "Segoe UI","sans-serif"; COLOR: #365f91; FONT-SIZE: 14pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-style-link: "Heading 1 Char"
}
H1.cxsplast {
	PAGE-BREAK-AFTER: avoid; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: 115%; MARGIN: 0in 0in 12pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; FONT-FAMILY: "Segoe UI","sans-serif"; COLOR: #365f91; FONT-SIZE: 14pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-style-link: "Heading 1 Char"
}
P.msotitle {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 15pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; FONT-FAMILY: "Cambria","serif"; LETTER-SPACING: 0.25pt; COLOR: #17365d; FONT-SIZE: 26pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-style-link: "Title Char"
}
LI.msotitle {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 15pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; FONT-FAMILY: "Cambria","serif"; LETTER-SPACING: 0.25pt; COLOR: #17365d; FONT-SIZE: 26pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-style-link: "Title Char"
}
DIV.msotitle {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 15pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; FONT-FAMILY: "Cambria","serif"; LETTER-SPACING: 0.25pt; COLOR: #17365d; FONT-SIZE: 26pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-style-link: "Title Char"
}
P.msotitlecxspfirst {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; FONT-FAMILY: "Cambria","serif"; LETTER-SPACING: 0.25pt; COLOR: #17365d; FONT-SIZE: 26pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-style-link: "Title Char"
}
LI.msotitlecxspfirst {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; FONT-FAMILY: "Cambria","serif"; LETTER-SPACING: 0.25pt; COLOR: #17365d; FONT-SIZE: 26pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-style-link: "Title Char"
}
DIV.msotitlecxspfirst {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; FONT-FAMILY: "Cambria","serif"; LETTER-SPACING: 0.25pt; COLOR: #17365d; FONT-SIZE: 26pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-style-link: "Title Char"
}
P.msotitlecxspmiddle {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; FONT-FAMILY: "Cambria","serif"; LETTER-SPACING: 0.25pt; COLOR: #17365d; FONT-SIZE: 26pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-style-link: "Title Char"
}
LI.msotitlecxspmiddle {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; FONT-FAMILY: "Cambria","serif"; LETTER-SPACING: 0.25pt; COLOR: #17365d; FONT-SIZE: 26pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-style-link: "Title Char"
}
DIV.msotitlecxspmiddle {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; FONT-FAMILY: "Cambria","serif"; LETTER-SPACING: 0.25pt; COLOR: #17365d; FONT-SIZE: 26pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-style-link: "Title Char"
}
P.msotitlecxsplast {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 15pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; FONT-FAMILY: "Cambria","serif"; LETTER-SPACING: 0.25pt; COLOR: #17365d; FONT-SIZE: 26pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-style-link: "Title Char"
}
LI.msotitlecxsplast {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 15pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; FONT-FAMILY: "Cambria","serif"; LETTER-SPACING: 0.25pt; COLOR: #17365d; FONT-SIZE: 26pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-style-link: "Title Char"
}
DIV.msotitlecxsplast {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 15pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; FONT-FAMILY: "Cambria","serif"; LETTER-SPACING: 0.25pt; COLOR: #17365d; FONT-SIZE: 26pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-style-link: "Title Char"
}
A:link {
	COLOR: blue; TEXT-DECORATION: underline
}
SPAN.msohyperlink {
	COLOR: blue; TEXT-DECORATION: underline
}
A:visited {
	COLOR: purple; TEXT-DECORATION: underline
}
SPAN.msohyperlinkfollowed {
	COLOR: purple; TEXT-DECORATION: underline
}
SPAN.heading1char {
	FONT-FAMILY: "Segoe UI","sans-serif"; COLOR: #365f91; FONT-WEIGHT: bold; mso-style-link: "Heading 1"; mso-style-name: "Heading 1 Char"
}
SPAN.titlechar {
	FONT-FAMILY: "Cambria","serif"; LETTER-SPACING: 0.25pt; COLOR: #17365d; mso-style-link: title; mso-style-name: "Title Char"
}
.msopapdefault {
	LINE-HEIGHT: 115%; MARGIN-BOTTOM: 10pt
}
DIV.section1 {
	page: section1
}
</STYLE>

<DIV class=Section1>
<P>Hello! As I mentioned in my earlier post, the F# team is tremendously proud of being a part of Visual Studio 2010. We have worked long and hard to get to this point, and we are very excited with the release of the first fully supported F# language. </P>
<P>To kick off the release of F#, I wanted to share with you a few quick guides to F#. The point of the quick guides is not to be a comprehensive language reference, but more of a “I know how to do this in C#, but how do I do it in F#” guide. As a result, the guides will be organized in table format, with F# code in the left, and corresponding C# code on the right. </P>
<P>The first guide will be about Object Oriented Programming in F#. You can download a copy of the <A href="http://blogs.msdn.com/timng/pages/f-object-oriented-programming-quick-guide.aspx" mce_href="http://blogs.msdn.com/timng/pages/f-object-oriented-programming-quick-guide.aspx">F# Object Oriented Programming Quick Guide</A> to make it easy for offline browsing. In addition, I’ve provided the F# source code for all the examples on the <A href="http://code.msdn.microsoft.com/fsharpquickguides" mce_href="http://code.msdn.microsoft.com/fsharpquickguides">F# Quick Guides Code Gallery page</A>. </P>
<P>Without further ado, here is the F# Quick Guide for Object Oriented Programming.</P>
<TABLE style="BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-COLLAPSE: collapse; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none" class=MsoTableGrid border=1 cellSpacing=0 cellPadding=0 class="MsoTableGrid">
<TBODY>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><B>Language Feature</B></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><B>F#</B></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><B>C#</B></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Classes with properties and default constructor</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Vector(x : float, y : float) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.X = x</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Y = y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = Vector(10., 10.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> x = v.X</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> y = v.Y</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> Vector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.x = x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y = y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> X</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.x; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.y; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(10, 10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> x = v.X;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> y = v.Y;</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Structs with properties</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">[&lt;Struct&gt;]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Vector(x : float, y : float) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; member</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> this.X = x</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Y = y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = Vector(10., 10.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> x = v.X</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> y = v.Y</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">struct</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> Vector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.x = x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y = y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> X</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.x; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.y; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(10, 10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> x = v.X;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> y = v.Y;</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Multiple constructors</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Vector(x : float, y : float) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.X = x</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Y = y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">new</SPAN>(v : Vector, s) = Vector(v.X * s, v.Y * s) </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = Vector(10., 10.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> w = <SPAN style="COLOR: blue">new</SPAN> Vector(v, 0.5)</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Vector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.x = x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y = y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Vector(<SPAN style="COLOR: #2b91af">Vector</SPAN> v, <SPAN style="COLOR: blue">double</SPAN> s) : </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>(v.x * s, v.y * s)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(10, 10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> w = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(v, 0.5);</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Member functions</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Vector(x : float, y : float) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; member</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> this.Scale(s : float) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vector(x * s, y * s)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = Vector(10., 10.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v2 = v.Scale(0.5)</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> Vector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.x = x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y = y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Scale(double s)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">new</SPAN> Vector(<SPAN style="COLOR: blue">this</SPAN>.x * s,</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y * s);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(10, 10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v2 = v.Scale(0.5);</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Operators</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Vector(x, y) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.X = x</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Y = y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: blue">member</SPAN> (*) (a : Vector, b : Vector) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.X * b.X + a.Y + b.Y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> x = Vector(2., 2.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> y = Vector(3., 3.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> dp = x * y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Vector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">.x = x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y = y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> X</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.x; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.y; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: blue">double</SPAN> <SPAN style="COLOR: blue">operator</SPAN> * (</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: #2b91af">Vector</SPAN> v1, <SPAN style="COLOR: #2b91af">Vector</SPAN> v2)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> v1.x * v2.x + v1.y * v2.y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> x = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(2, 2);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> y = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(3, 3);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> dp = x * y;</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Static members and properties</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Vector(x, y) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.X = x</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Y = y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: blue">member</SPAN> Dot(a : Vector, b : Vector) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.X * b.X + a.Y + b.Y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: blue">member</SPAN> NormX = Vector(1., 0.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> x = Vector(2., 2.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> y = Vector.NormX</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> dp = Vector.Dot(x, y)</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> Vector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.x = x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y = y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> X</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.x; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.y; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: blue">double</SPAN> Dot(<SPAN style="COLOR: #2b91af">Vector</SPAN> v1,</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: #2b91af">Vector</SPAN> v2)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> v1.x * v2.x + v1.y * v2.y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN> NormX</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">new</SPAN> Vector(1, 0); }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> x = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(2, 2);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> y = <SPAN style="COLOR: #2b91af">Vector</SPAN>.NormX;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> dp = <SPAN style="COLOR: #2b91af">Vector</SPAN>.Dot(x, y);</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Class properties that use let value computations in the constructor</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Vector(x, y) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">let</SPAN> mag = sqrt(x * x + y * y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">let</SPAN> rad = <SPAN style="COLOR: blue">if</SPAN> x = 0. &amp;&amp; y = 0. <SPAN style="COLOR: blue">then</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">else</SPAN> <SPAN style="COLOR: blue">if</SPAN> x &gt;= 0. <SPAN style="COLOR: blue">then</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asin(y / mag)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">else</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-1. * asin(y / mag)) + </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Math.PI</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Mag = mag</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Rad = rad</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = Vector(10., 10.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> mag = v.Mag</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> rad = v.Rad</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> mag = 0.0;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> rad = 0.0;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> Vector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.mag = <SPAN style="COLOR: #2b91af">Math</SPAN>.Sqrt(x * x + y * y);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">if</SPAN> (x == 0.0 &amp;&amp; y == 0.0) rad = 0.0;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">else</SPAN> <SPAN style="COLOR: blue">if</SPAN> (x &gt;= 0.0)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rad = <SPAN style="COLOR: #2b91af">Math</SPAN>.Asin(y / mag);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">else</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rad = (-1.0 * <SPAN style="COLOR: #2b91af">Math</SPAN>.Asin(y / mag)) + <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: #2b91af">Math</SPAN>.PI;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Mag</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.mag; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">double</SPAN> Rad</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.rad; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(10, 10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> mag = v.Mag;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> rad = v.Rad;</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Class members that use private function values</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Vector(x, y) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">let</SPAN> rotate a =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">let</SPAN> x' = x * cos a – y * sin a</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">let</SPAN> y' = y * sin a + y * cos a</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">new</SPAN> Vector(x', y')</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.RotateByDegrees(d) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rotate (d * Math.PI / 180.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.RotateByRadians(r) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rotate r</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = Vector(10., 0.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> x = v.RotateByDegrees(90.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> y = v.RotateByRadians(Math.PI / 6.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> x = 0.0;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> y = 0.0;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> rotate(<SPAN style="COLOR: blue">double</SPAN> a)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> xx = <SPAN style="COLOR: blue">this</SPAN>.x * <SPAN style="COLOR: #2b91af">Math</SPAN>.Cos(a) – </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y * <SPAN style="COLOR: #2b91af">Math</SPAN>.Sin(a);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> yy = <SPAN style="COLOR: blue">this</SPAN>.y * <SPAN style="COLOR: #2b91af">Math</SPAN>.Sin(a) + </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y * <SPAN style="COLOR: #2b91af">Math</SPAN>.Cos(a);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(xx, yy);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Vector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.x = x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y = y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: #2b91af">Vector</SPAN> RotateByDegrees(<SPAN style="COLOR: blue">double</SPAN> d)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> rotate(d * <SPAN style="COLOR: #2b91af">Math</SPAN>.PI / 180);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: #2b91af">Vector</SPAN> RotateByRadians(<SPAN style="COLOR: blue">double</SPAN> r)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> rotate(r);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(10, 10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> x = v.RotateByDegrees(90.0);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> y = v.RotateByRadians(<SPAN style="COLOR: #2b91af">Math</SPAN>.PI / 6.0);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Overloading members</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Car() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Drive() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Drive(10)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Drive(mph : int) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: green">// Do something</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> c = Car()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">c.Drive()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">c.Drive(10)</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Car</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">void</SPAN> Drive()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Drive(10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">void</SPAN> Drive(<SPAN style="COLOR: blue">int</SPAN> mph)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: green">// Do something</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Car</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> c = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Car</SPAN>();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">c.Drive();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">c.Drive(10);</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Mutable fields in a class with get/set properties</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> MutableVector(x : float, y : float) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">let</SPAN> <SPAN style="COLOR: blue">mutable</SPAN> cx = x</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">let</SPAN> <SPAN style="COLOR: blue">mutable</SPAN> cy = y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.X <SPAN style="COLOR: blue">with</SPAN> get() = cx <SPAN style="COLOR: blue">and</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set(v) = cx &lt;- v</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Y <SPAN style="COLOR: blue">with</SPAN> get() = cy <SPAN style="COLOR: blue">and</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">set(v) = cy &lt;- v</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Length = sqrt(x * x + y * y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = MutableVector(2., 2.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> len1 = v.Length</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">v.X &lt;- 3.</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">v.Y &lt;- 3.</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> len2 = v.Length</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">MutableVector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> MutableVector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.X = x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.Y = y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> X { <SPAN style="COLOR: blue">get</SPAN>; <SPAN style="COLOR: blue">set</SPAN>; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Y { <SPAN style="COLOR: blue">get</SPAN>; <SPAN style="COLOR: blue">set</SPAN>; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Length</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: #2b91af">Math</SPAN>.Sqrt(</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.X * <SPAN style="COLOR: blue">this</SPAN>.X +</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.Y * <SPAN style="COLOR: blue">this</SPAN>.Y); }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">MutableVector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">MutableVector</SPAN>(2.0, 2.0);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> len1 = v.Length;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">v.X = 3.0;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">v.Y = 3.0;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> len2 = v.Length;</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Generic classes and function arguments</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Factory&lt;'T&gt;(f : unit <SPAN style="COLOR: blue">-&gt;</SPAN> 'T) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; member</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> this.Create() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> strings = Factory&lt;string&gt;(</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">fun</SPAN> () <SPAN style="COLOR: blue">-&gt;</SPAN> <SPAN style="COLOR: maroon">"Hello!"</SPAN>)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> res = strings.Create()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> ints = Factory&lt;int&gt;(<SPAN style="COLOR: blue">fun</SPAN> () <SPAN style="COLOR: blue">-&gt;</SPAN> 10)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> res = ints.Create()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Factory</SPAN>&lt;T&gt;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Func</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&lt;T&gt; creator;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> Factory(<SPAN style="COLOR: #2b91af">Func</SPAN>&lt;T&gt; f)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.creator = f;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> T Create()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.creator();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Factory</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&lt;<SPAN style="COLOR: blue">string</SPAN>&gt; strings = <SPAN style="COLOR: blue">new</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: #2b91af">Factory</SPAN>&lt;<SPAN style="COLOR: blue">string</SPAN>&gt;(() =&gt; <SPAN style="COLOR: #a31515">"Hello"</SPAN>);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">string</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> res1 = strings.Create();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Factory</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&lt;<SPAN style="COLOR: blue">int</SPAN>&gt; ints = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Factory</SPAN>&lt;<SPAN style="COLOR: blue">int</SPAN>&gt;(() =&gt; 10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">int</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> res2 = ints.Create();</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Generic classes and methods</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Container&lt;'T&gt;(a : 'T) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Convert&lt;'U&gt;(f : 'T <SPAN style="COLOR: blue">-&gt;</SPAN> 'U) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f a</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> c = <SPAN style="COLOR: blue">new</SPAN> Container&lt;int&gt;(10)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> b = c.Convert(<SPAN style="COLOR: blue">fun</SPAN> a <SPAN style="COLOR: blue">-&gt;</SPAN> a.ToString())</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Container</SPAN>&lt;T&gt;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; private</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> T value;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> Container(T t)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.value = t;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> U Convert&lt;U&gt;(<SPAN style="COLOR: #2b91af">Func</SPAN>&lt;T, U&gt; f)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> f(<SPAN style="COLOR: blue">this</SPAN>.value);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Container</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&lt;<SPAN style="COLOR: blue">int</SPAN>&gt; c = <SPAN style="COLOR: blue">new</SPAN> Container&lt;<SPAN style="COLOR: blue">int</SPAN>&gt;(10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">string</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> result = c.Convert(n =&gt; n.ToString());</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Extension methods</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> List&lt;'T&gt; <SPAN style="COLOR: blue">with</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.MyExtensionMethod() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this |&gt; Seq.map (<SPAN style="COLOR: blue">fun</SPAN> a <SPAN style="COLOR: blue">-&gt;</SPAN> a.ToString())</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> c = [1; 2; 3]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> d = c.MyExtensionMethod()</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">ExtensionMethods</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: #2b91af">IEnumerable</SPAN>&lt;<SPAN style="COLOR: blue">string</SPAN>&gt; </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MyExtensionMethod&lt;T&gt;(<SPAN style="COLOR: blue">this</SPAN> <SPAN style="COLOR: #2b91af">List</SPAN>&lt;T&gt; a)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> a.Select(s =&gt; s.ToString());</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">List</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&lt;<SPAN style="COLOR: blue">int</SPAN>&gt; l = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">List</SPAN>&lt;<SPAN style="COLOR: blue">int</SPAN>&gt; { 1, 2, 3 };</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">IEnumerable</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&lt;<SPAN style="COLOR: blue">string</SPAN>&gt; res = </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; l.MyExtensionMethod();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Extension properties</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> List&lt;'T&gt; <SPAN style="COLOR: blue">with</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.MyExtensionProp =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this |&gt; Seq.map (<SPAN style="COLOR: blue">fun</SPAN> a <SPAN style="COLOR: blue">-&gt;</SPAN> a.ToString())</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> c = [1; 2; 3]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> d = c.MyExtensionProp</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>N/A. C# does not support this feature.</P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Indexers</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Table() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Item</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">with</SPAN> get(key : string) = int key</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> tab = Table()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> x = tab.[<SPAN style="COLOR: maroon">"10"</SPAN>]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> y = tab.[<SPAN style="COLOR: maroon">"12"</SPAN>]</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Table</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">int</SPAN> <SPAN style="COLOR: blue">this</SPAN>[<SPAN style="COLOR: blue">string</SPAN> key]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: #2b91af">Convert</SPAN>.ToInt32(key); }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Table</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> tab = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Table</SPAN>();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">int</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> x = tab[<SPAN style="COLOR: #a31515">"10"</SPAN>];</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">int</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> y = tab[<SPAN style="COLOR: #a31515">"12"</SPAN>];</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Indexed Properties</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Table() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Values</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">with</SPAN> get(key : string) = int key</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.MultipleValues</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">with</SPAN> get(key1, key2) = key1 + key2</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> tab = Table()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> x = tab.Values(<SPAN style="COLOR: maroon">"10"</SPAN>)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> y = tab.Values(<SPAN style="COLOR: maroon">"12"</SPAN>)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> a = tab.MultipleValues(10, 5)</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>N/A. C# does not support this feature.</P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Abstract classes</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">[&lt;AbstractClass&gt;]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Shape() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">abstract</SPAN> Name : string <SPAN style="COLOR: blue">with</SPAN> get</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">abstract</SPAN> Scale : float <SPAN style="COLOR: blue">-&gt;</SPAN> Shape</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">abstract</SPAN> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Shape</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">abstract</SPAN> <SPAN style="COLOR: blue">string</SPAN> Name { <SPAN style="COLOR: blue">get</SPAN>; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">abstract</SPAN> <SPAN style="COLOR: #2b91af">Shape</SPAN> Scale(<SPAN style="COLOR: blue">double</SPAN> scale);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Derive from a base class and overriding base methods with generics</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">[&lt;AbstractClass&gt;]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Shape&lt;'T&gt;() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">abstract</SPAN> Name : string <SPAN style="COLOR: blue">with</SPAN> get</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">abstract</SPAN> Scale : float <SPAN style="COLOR: blue">-&gt;</SPAN> 'T</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Vector(angle, mag) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">inherit</SPAN> Shape&lt;Vector&gt;()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Angle = angle</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Mag = makg</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">override</SPAN> this.Name = <SPAN style="COLOR: maroon">"Vector"</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">override</SPAN> this.Scale(factor) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vector(angle, mag * factor)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = Vector(45., 10.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v2 = v.Scale(0.5)</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">abstract</SPAN> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Shape</SPAN>&lt;T&gt;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">abstract</SPAN> <SPAN style="COLOR: blue">string</SPAN> Name { <SPAN style="COLOR: blue">get</SPAN>; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">abstract</SPAN> T Scale(<SPAN style="COLOR: blue">double</SPAN> scale);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN> : <SPAN style="COLOR: #2b91af">Shape</SPAN>&lt;<SPAN style="COLOR: #2b91af">Vector</SPAN>&gt;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> angle;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> mag;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Angle {<SPAN style="COLOR: blue">get</SPAN>{<SPAN style="COLOR: blue">return</SPAN> angle;}}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Mag {<SPAN style="COLOR: blue">get</SPAN>{<SPAN style="COLOR: blue">return</SPAN> mag;}}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> Vector(<SPAN style="COLOR: blue">double</SPAN> angle, <SPAN style="COLOR: blue">double</SPAN> mag)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.angle = angle;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.mag = mag;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">override</SPAN> <SPAN style="COLOR: blue">string</SPAN> Name</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: #a31515">"Vector"</SPAN>; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">override</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN> Scale(<SPAN style="COLOR: blue">double</SPAN> scale)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(<SPAN style="COLOR: blue">this</SPAN>.Angle,</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.Mag * scale);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(45, 10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v2 = v.Scale(0.5);</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Calling a base class method</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Animal() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Rest() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: green">// Rest for the animal</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Dog() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">inherit</SPAN> Animal()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Run() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: green">// Run</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">base</SPAN>.Rest()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> brian = <SPAN style="COLOR: blue">new</SPAN> Dog()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">brian.Run()</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Animal</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">void</SPAN> Rest()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: green">// Rest for the animal</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Dog</SPAN> : <SPAN style="COLOR: #2b91af">Animal</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">void</SPAN> Run()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Run</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; base</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">.Rest();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Dog</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> brian = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Dog</SPAN>();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">brian.Run();</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Implementing an interface</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> IVector =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">abstract</SPAN> Mag : double <SPAN style="COLOR: blue">with</SPAN> get</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">abstract</SPAN> Scale : float <SPAN style="COLOR: blue">-&gt;</SPAN> IVector</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Vector(x, y) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">interface</SPAN> IVector <SPAN style="COLOR: blue">with</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Mag = sqrt(x * x + y * y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Scale(s) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vector(x * s, y * s) :&gt; IVector</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.X = x</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Y = y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> Vector(1., 2.) :&gt; IVector</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> w = v.Scale(0.5)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> mag = w.Mag</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">interface</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: #2b91af">IVector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Mag { <SPAN style="COLOR: blue">get</SPAN>; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; IVector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Scale(<SPAN style="COLOR: blue">double</SPAN> s);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">class</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: #2b91af">Vector</SPAN> : <SPAN style="COLOR: #2b91af">IVector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Vector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">.x = x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">.y = y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> X</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.x; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.y; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">double</SPAN> Mag</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: #2b91af">Math</SPAN>.Sqrt( <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.x * <SPAN style="COLOR: blue">this</SPAN>.x +</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y * <SPAN style="COLOR: blue">this</SPAN>.y); }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: #2b91af">IVector</SPAN> Scale(<SPAN style="COLOR: blue">double</SPAN> s)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(<SPAN style="COLOR: blue">this</SPAN>.x * s,</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y * s);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">IVector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(1, 2);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">IVector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> w = v.Scale(0.5);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> mag = w.Mag;</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Implementing an interface with object expressions</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> ICustomer =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">abstract</SPAN> Name : string <SPAN style="COLOR: blue">with</SPAN> get</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">abstract</SPAN> Age : int <SPAN style="COLOR: blue">with</SPAN> get</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> CreateCustomer name age =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; { <SPAN style="COLOR: blue">new</SPAN> ICustomer <SPAN style="COLOR: blue">with</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Name = name</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Age = age</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> c = CreateCustomer <SPAN style="COLOR: maroon">"Snoopy"</SPAN> 16</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> d = CreateCustomer <SPAN style="COLOR: maroon">"Garfield"</SPAN> 5</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>N/A. C# does not support creating object expressions.</P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Events</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> BarkArgs(msg:string) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">inherit</SPAN> EventArgs()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Message = msg</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> BarkDelegate =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">delegate</SPAN> <SPAN style="COLOR: blue">of</SPAN> obj * BarkArgs <SPAN style="COLOR: blue">-&gt;</SPAN> unit</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Dog() = </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">let</SPAN> ev = <SPAN style="COLOR: blue">new</SPAN> Event&lt;BarkDelegate, BarkArgs&gt;()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Bark(msg) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ev.Trigger(this, <SPAN style="COLOR: blue">new</SPAN> BarkArgs(msg))</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; [&lt;CLIEvent&gt;]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.OnBark = ev.Publish</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> snoopy = <SPAN style="COLOR: blue">new</SPAN> Dog()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">snoopy.OnBark.Add(</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">fun</SPAN> ba <SPAN style="COLOR: blue">-&gt;</SPAN> printfn <SPAN style="COLOR: maroon">"%s"</SPAN> (ba.Message))</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">snoopy.Bark(<SPAN style="COLOR: maroon">"Hello"</SPAN>) </SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">BarkArgs</SPAN> : <SPAN style="COLOR: #2b91af">EventArgs</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; private</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">string</SPAN> msg;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> BarkArgs(<SPAN style="COLOR: blue">string</SPAN> msg)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">.msg = msg;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">string</SPAN> Message</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.msg; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">delegate</SPAN> <SPAN style="COLOR: blue">void</SPAN> <SPAN style="COLOR: #2b91af">BarkDelegate</SPAN>(</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: #2b91af">Object</SPAN> sender, <SPAN style="COLOR: #2b91af">BarkArgs</SPAN> args);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">class</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: #2b91af">Dog</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">event</SPAN> <SPAN style="COLOR: #2b91af">BarkDelegate</SPAN> OnBark;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">void</SPAN> Bark(<SPAN style="COLOR: blue">string</SPAN> msg)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OnBark(<SPAN style="COLOR: blue">this</SPAN>, <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">BarkArgs</SPAN>(msg));</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Dog</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> snoopy = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Dog</SPAN>();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">snoopy.OnBark += <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">BarkDelegate</SPAN>(</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; (sender, msg) =&gt; </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: #2b91af">Console</SPAN>.WriteLine(msg.Message));</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">snoopy.Bark(<SPAN style="COLOR: #a31515">"Hello"</SPAN>);</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Explicit class constructor </P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Vector =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">val</SPAN> <SPAN style="COLOR: blue">mutable</SPAN> x : float</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">val</SPAN> <SPAN style="COLOR: blue">mutable</SPAN> y : float</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">new</SPAN>() = {x = 0.; y = 0.}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = Vector()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">v.x &lt;- 10.</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">v.y &lt;- 10.</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Explicit public fields</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Vector() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; [&lt;DefaultValue()&gt;]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">val</SPAN> <SPAN style="COLOR: blue">mutable</SPAN> x : int</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; [&lt;DefaultValue()&gt;]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">val</SPAN> <SPAN style="COLOR: blue">mutable</SPAN> y : int</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = Vector()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">v.x &lt;- 10</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">v.y &lt;- 10</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">int</SPAN> x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">int</SPAN> y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">v.x = 10;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">v.y = 10;</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Explicit struct definition</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">[&lt;Struct&gt;]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> Vector =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">val</SPAN> <SPAN style="COLOR: blue">mutable</SPAN> <SPAN style="COLOR: blue">public</SPAN> x : int</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">val</SPAN> <SPAN style="COLOR: blue">mutable</SPAN> <SPAN style="COLOR: blue">public</SPAN> y : int</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">mutable</SPAN> v = Vector()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">v.x &lt;- 10</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">v.y &lt;- 10</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">struct</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">int</SPAN> x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">int</SPAN> y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">v.x = 10;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 9pt">v.y = 10;</SPAN></P></TD></TR></TBODY></TABLE></DIV>]]></content:encoded>
    </item>
    <item>
      <title>F# Quick Guides: Object Oriented Programming</title>
      <link>https://docs.microsoft.com/archive/blogs/timng/f-quick-guides-object-oriented-programming-2</link>
      <pubDate>Mon, 05 Apr 2010 23:47:00 GMT</pubDate>
      <dc:creator><![CDATA[Timothy Ng]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/timng/2010/04/05/f-quick-guides-object-oriented-programming-2/</guid>
      <description><![CDATA[F# Quick Guides: Object Oriented Programming
&nbsp;
This document is a quick guide...]]></description>
      <content:encoded><![CDATA[<META name=Generator content="Microsoft Word 12 (filtered)">
<STYLE>
<!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:"Segoe UI";
	panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin-top:0in;
	margin-right:0in;
	margin-bottom:10.0pt;
	margin-left:0in;
	line-height:115%;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
h1
	{mso-style-link:"Heading 1 Char";
	margin-top:12.0pt;
	margin-right:0in;
	margin-bottom:12.0pt;
	margin-left:0in;
	line-height:115%;
	page-break-after:avoid;
	border:none;
	padding:0in;
	font-size:14.0pt;
	font-family:"Segoe UI","sans-serif";
	color:#365F91;}
h1.CxSpFirst
	{mso-style-link:"Heading 1 Char";
	margin-top:12.0pt;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	line-height:115%;
	page-break-after:avoid;
	border:none;
	padding:0in;
	font-size:14.0pt;
	font-family:"Segoe UI","sans-serif";
	color:#365F91;}
h1.CxSpMiddle
	{mso-style-link:"Heading 1 Char";
	margin:0in;
	margin-bottom:.0001pt;
	line-height:115%;
	page-break-after:avoid;
	border:none;
	padding:0in;
	font-size:14.0pt;
	font-family:"Segoe UI","sans-serif";
	color:#365F91;}
h1.CxSpLast
	{mso-style-link:"Heading 1 Char";
	margin-top:0in;
	margin-right:0in;
	margin-bottom:12.0pt;
	margin-left:0in;
	line-height:115%;
	page-break-after:avoid;
	border:none;
	padding:0in;
	font-size:14.0pt;
	font-family:"Segoe UI","sans-serif";
	color:#365F91;}
p.MsoTitle, li.MsoTitle, div.MsoTitle
	{mso-style-link:"Title Char";
	margin-top:0in;
	margin-right:0in;
	margin-bottom:15.0pt;
	margin-left:0in;
	border:none;
	padding:0in;
	font-size:26.0pt;
	font-family:"Cambria","serif";
	color:#17365D;
	letter-spacing:.25pt;}
p.MsoTitleCxSpFirst, li.MsoTitleCxSpFirst, div.MsoTitleCxSpFirst
	{mso-style-link:"Title Char";
	margin:0in;
	margin-bottom:.0001pt;
	border:none;
	padding:0in;
	font-size:26.0pt;
	font-family:"Cambria","serif";
	color:#17365D;
	letter-spacing:.25pt;}
p.MsoTitleCxSpMiddle, li.MsoTitleCxSpMiddle, div.MsoTitleCxSpMiddle
	{mso-style-link:"Title Char";
	margin:0in;
	margin-bottom:.0001pt;
	border:none;
	padding:0in;
	font-size:26.0pt;
	font-family:"Cambria","serif";
	color:#17365D;
	letter-spacing:.25pt;}
p.MsoTitleCxSpLast, li.MsoTitleCxSpLast, div.MsoTitleCxSpLast
	{mso-style-link:"Title Char";
	margin-top:0in;
	margin-right:0in;
	margin-bottom:15.0pt;
	margin-left:0in;
	border:none;
	padding:0in;
	font-size:26.0pt;
	font-family:"Cambria","serif";
	color:#17365D;
	letter-spacing:.25pt;}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
span.Heading1Char
	{mso-style-name:"Heading 1 Char";
	mso-style-link:"Heading 1";
	font-family:"Segoe UI","sans-serif";
	color:#365F91;
	font-weight:bold;}
span.TitleChar
	{mso-style-name:"Title Char";
	mso-style-link:Title;
	font-family:"Cambria","serif";
	color:#17365D;
	letter-spacing:.25pt;}
.MsoPapDefault
	{margin-bottom:10.0pt;
	line-height:115%;}
@page Section1
	{size:11.0in 8.5in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
	{page:Section1;}
-->
</STYLE>

<DIV class=Section1>
<DIV style="BORDER-BOTTOM: #1f497d 1pt solid; BORDER-LEFT: #1f497d 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in">
<H1>F# Quick Guides: Object Oriented Programming</H1></DIV>
<P class=MsoNormal mce_keep="true">&nbsp;</P>
<P class=MsoNormal>This document is a quick guide of F #object oriented programming constructs and their equivalent in C#, where applicable. For more information on F#, please visit <A href="http://www.fsharp.net/" mce_href="http://www.fsharp.net">http://www.fsharp.net</A> for documentation, videos, and samples.</P>
<TABLE style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none" class=MsoTableGrid border=1 cellSpacing=0 cellPadding=0 class="MsoTableGrid">
<TBODY>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><B>Language Feature</B></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><B>F#</B></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><B>C#</B></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Classes with properties and default constructor</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Vector(x : float, y : float) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.X = x</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Y = y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = Vector(10., 10.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> x = v.X</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> y = v.Y</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> Vector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: blue">this</SPAN>.x = x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y = y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> X</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.x; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.y; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(10, 10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> x = v.X;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> y = v.Y;</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Structs with properties</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">[&lt;Struct&gt;]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Vector(x : float, y : float) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; member</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> this.X = x</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Y = y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = Vector(10., 10.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> x = v.X</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> y = v.Y</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">struct</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> Vector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.x = x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y = y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> X</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.x; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.y; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(10, 10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> x = v.X;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> y = v.Y;</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Multiple constructors</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Vector(x : float, y : float) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.X = x</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Y = y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">new</SPAN>(v : Vector, s) = Vector(v.X * s, v.Y * s) </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = Vector(10., 10.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> w = <SPAN style="COLOR: blue">new</SPAN> Vector(v, 0.5)</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Vector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: blue">this</SPAN>.x = x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: blue">this</SPAN>.y = y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Vector(<SPAN style="COLOR: #2b91af">Vector</SPAN> v, <SPAN style="COLOR: blue">double</SPAN> s) : </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>(v.x * s, v.y * s)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(10, 10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> w = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(v, 0.5);</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Member functions</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Vector(x, y) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; member</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> this.Scale(s) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vector(x * s, y * s)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = Vector(10., 10.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v2 = v.Scale(0.5)</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> Vector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.x = x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y = y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Scale(double s)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">new</SPAN> Vector(<SPAN style="COLOR: blue">this</SPAN>.x * s,</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y * s);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(10, 10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v2 = v.Scale(0.5);</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Operators</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Vector(x, y) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.X = x</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Y = y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: blue">member</SPAN> (*) (a : Vector, b : Vector) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.X * b.X + a.Y + b.Y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> x = Vector(2., 2.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> y = Vector(3., 3.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> dp = x * y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Vector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">.x = x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y = y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> X</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.x; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.y; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: blue">double</SPAN> <SPAN style="COLOR: blue">operator</SPAN> * (</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: #2b91af">Vector</SPAN> v1, <SPAN style="COLOR: #2b91af">Vector</SPAN> v2)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> v1.x * v2.x + v1.y * v2.y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> x = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(2, 2);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> y = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(3, 3);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> dp = x * y;</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Static members and properties</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Vector(x, y) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.X = x</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Y = y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: blue">member</SPAN> Dot(a : Vector, b : Vector) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.X * b.X + a.Y + b.Y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: blue">member</SPAN> NormX = Vector(1., 0.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> x = Vector(2., 2.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> y = Vector.NormX</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> dp = Vector.Dot(x, y)</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> Vector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.x = x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y = y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> X</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.x; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.y; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: blue">double</SPAN> Dot(<SPAN style="COLOR: #2b91af">Vector</SPAN> v1,</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: #2b91af">Vector</SPAN> v2)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> v1.x * v2.x + v1.y * v2.y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN> NormX</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">new</SPAN> Vector(1, 0); }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> x = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(2, 2);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> y = <SPAN style="COLOR: #2b91af">Vector</SPAN>.NormX;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> dp = <SPAN style="COLOR: #2b91af">Vector</SPAN>.Dot(x, y);</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Class properties that use let value computations in the constructor</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Vector(x, y) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">let</SPAN> mag = sqrt(x * x + y * y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">let</SPAN> rad = <SPAN style="COLOR: blue">if</SPAN> x = 0. &amp;&amp; y = 0. <SPAN style="COLOR: blue">then</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">else</SPAN> <SPAN style="COLOR: blue">if</SPAN> x &gt;= 0. <SPAN style="COLOR: blue">then</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asin(y / mag)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">else</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-1. * asin(y / mag)) + </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Math.PI</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Mag = mag</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Rad = rad</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = Vector(10., 10.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> mag = v.Mag</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> rad = v.Rad</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> mag = 0.0;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> rad = 0.0;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> Vector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.mag = <SPAN style="COLOR: #2b91af">Math</SPAN>.Sqrt(x * x + y * y);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">if</SPAN> (x == 0.0 &amp;&amp; y == 0.0) rad = 0.0;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">else</SPAN> <SPAN style="COLOR: blue">if</SPAN> (x &gt;= 0.0)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rad = <SPAN style="COLOR: #2b91af">Math</SPAN>.Asin(y / mag);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">else</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rad = (-1.0 * <SPAN style="COLOR: #2b91af">Math</SPAN>.Asin(y / mag)) + <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: #2b91af">Math</SPAN>.PI;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Mag</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.mag; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">double</SPAN> Rad</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.rad; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(10, 10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> mag = v.Mag;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> rad = v.Rad;</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Class members that use private function values</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Vector(x, y) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">let</SPAN> rotate a =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: blue">let</SPAN> x' = x * cos a – y * sin a</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: blue">let</SPAN> y' = y * sin a + y * cos a</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">new</SPAN> Vector(x', y')</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.RotateByDegrees(d) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rotate (d * Math.PI / 180.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.RotateByRadians(r) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rotate r</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = Vector(10., 0.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> x = v.RotateByDegrees(90.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> y = v.RotateByRadians(Math.PI / 6.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> x = 0.0;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> y = 0.0;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> rotate(<SPAN style="COLOR: blue">double</SPAN> a)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> xx = <SPAN style="COLOR: blue">this</SPAN>.x * <SPAN style="COLOR: #2b91af">Math</SPAN>.Cos(a) – </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y * <SPAN style="COLOR: #2b91af">Math</SPAN>.Sin(a);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> yy = <SPAN style="COLOR: blue">this</SPAN>.y * <SPAN style="COLOR: #2b91af">Math</SPAN>.Sin(a) + </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y * <SPAN style="COLOR: #2b91af">Math</SPAN>.Cos(a);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(xx, yy);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Vector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.x = x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y = y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: #2b91af">Vector</SPAN> RotateByDegrees(<SPAN style="COLOR: blue">double</SPAN> d)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> rotate(d * <SPAN style="COLOR: #2b91af">Math</SPAN>.PI / 180);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: #2b91af">Vector</SPAN> RotateByRadians(<SPAN style="COLOR: blue">double</SPAN> r)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> rotate(r);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(10, 10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> x = v.RotateByDegrees(90.0);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> y = v.RotateByRadians(<SPAN style="COLOR: #2b91af">Math</SPAN>.PI / 6.0);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Overloading members</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Car() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Drive() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Drive(10)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Drive(mph : int) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: green">// Do something</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> c = Car()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">c.Drive()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">c.Drive(10)</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Car</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">void</SPAN> Drive()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Drive(10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">void</SPAN> Drive(<SPAN style="COLOR: blue">int</SPAN> mph)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: green">// Do something</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Car</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> c = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Car</SPAN>();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">c.Drive();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">c.Drive(10);</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Mutable fields in a class with get/set properties</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> MutableVector(x : float, y : float) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">let</SPAN> <SPAN style="COLOR: blue">mutable</SPAN> cx = x</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">let</SPAN> <SPAN style="COLOR: blue">mutable</SPAN> cy = y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.X <SPAN style="COLOR: blue">with</SPAN> get() = cx <SPAN style="COLOR: blue">and</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set(v) = cx &lt;- v</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Y <SPAN style="COLOR: blue">with</SPAN> get() = cy <SPAN style="COLOR: blue">and</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">set(v) = cy &lt;- v</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Length = sqrt(x * x + y * y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = MutableVector(2., 2.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> len1 = v.Length</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">v.X &lt;- 3.</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">v.Y &lt;- 3.</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> len2 = v.Length</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">MutableVector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> MutableVector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.X = x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.Y = y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> X { <SPAN style="COLOR: blue">get</SPAN>; <SPAN style="COLOR: blue">set</SPAN>; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Y { <SPAN style="COLOR: blue">get</SPAN>; <SPAN style="COLOR: blue">set</SPAN>; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Length</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: #2b91af">Math</SPAN>.Sqrt(</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.X * <SPAN style="COLOR: blue">this</SPAN>.X +</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.Y * <SPAN style="COLOR: blue">this</SPAN>.Y); }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">MutableVector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">MutableVector</SPAN>(2.0, 2.0);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> len1 = v.Length;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">v.X = 3.0;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">v.Y = 3.0;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> len2 = v.Length;</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Generic classes and function arguments</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Factory&lt;'T&gt;(f : unit <SPAN style="COLOR: blue">-&gt;</SPAN> 'T) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; member</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> this.Create() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> strings = Factory&lt;string&gt;(</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">fun</SPAN> () <SPAN style="COLOR: blue">-&gt;</SPAN> <SPAN style="COLOR: maroon">"Hello!"</SPAN>)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> res = strings.Create()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> ints = Factory&lt;int&gt;(<SPAN style="COLOR: blue">fun</SPAN> () <SPAN style="COLOR: blue">-&gt;</SPAN> 10)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> res = ints.Create()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Factory</SPAN>&lt;T&gt;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Func</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&lt;T&gt; creator;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> Factory(<SPAN style="COLOR: #2b91af">Func</SPAN>&lt;T&gt; f)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.creator = f;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> T Create()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.creator();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Factory</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&lt;<SPAN style="COLOR: blue">string</SPAN>&gt; strings = <SPAN style="COLOR: blue">new</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: #2b91af">Factory</SPAN>&lt;<SPAN style="COLOR: blue">string</SPAN>&gt;(() =&gt; <SPAN style="COLOR: #a31515">"Hello"</SPAN>);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">string</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> res1 = strings.Create();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Factory</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&lt;<SPAN style="COLOR: blue">int</SPAN>&gt; ints = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Factory</SPAN>&lt;<SPAN style="COLOR: blue">int</SPAN>&gt;(() =&gt; 10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">int</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> res2 = ints.Create();</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Generic classes and methods</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Container&lt;'T&gt;(a : 'T) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Convert&lt;'U&gt;(f : 'T <SPAN style="COLOR: blue">-&gt;</SPAN> 'U) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f a</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> c = <SPAN style="COLOR: blue">new</SPAN> Container&lt;int&gt;(10)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> b = c.Convert(<SPAN style="COLOR: blue">fun</SPAN> a <SPAN style="COLOR: blue">-&gt;</SPAN> a.ToString())</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Container</SPAN>&lt;T&gt;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; private</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> T value;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> Container(T t)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.value = t;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> U Convert&lt;U&gt;(<SPAN style="COLOR: #2b91af">Func</SPAN>&lt;T, U&gt; f)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> f(<SPAN style="COLOR: blue">this</SPAN>.value);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Container</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&lt;<SPAN style="COLOR: blue">int</SPAN>&gt; c = <SPAN style="COLOR: blue">new</SPAN> Container&lt;<SPAN style="COLOR: blue">int</SPAN>&gt;(10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">string</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> result = c.Convert(n =&gt; n.ToString());</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Extension methods</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> List&lt;'T&gt; <SPAN style="COLOR: blue">with</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.MyExtensionMethod() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this |&gt; Seq.map (<SPAN style="COLOR: blue">fun</SPAN> a <SPAN style="COLOR: blue">-&gt;</SPAN> a.ToString())</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> c = [1; 2; 3]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> d = c.MyExtensionMethod()</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">ExtensionMethods</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: #2b91af">IEnumerable</SPAN>&lt;<SPAN style="COLOR: blue">string</SPAN>&gt; </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MyExtensionMethod&lt;T&gt;(<SPAN style="COLOR: blue">this</SPAN> <SPAN style="COLOR: #2b91af">List</SPAN>&lt;T&gt; a)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> a.Select(s =&gt; s.ToString());</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">List</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&lt;<SPAN style="COLOR: blue">int</SPAN>&gt; l = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">List</SPAN>&lt;<SPAN style="COLOR: blue">int</SPAN>&gt; { 1, 2, 3 };</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">IEnumerable</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&lt;<SPAN style="COLOR: blue">string</SPAN>&gt; res = </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; l.MyExtensionMethod();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Extension properties</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> List&lt;'T&gt; <SPAN style="COLOR: blue">with</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.MyExtensionProp =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this |&gt; Seq.map (<SPAN style="COLOR: blue">fun</SPAN> a <SPAN style="COLOR: blue">-&gt;</SPAN> a.ToString())</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> c = [1; 2; 3]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> d = c.MyExtensionProp</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>N/A. C# does not support this feature.</P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Indexers</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Table() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Item</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">with</SPAN> get(key : string) = int key</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> tab = Table()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> x = tab.[<SPAN style="COLOR: maroon">"10"</SPAN>]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> y = tab.[<SPAN style="COLOR: maroon">"12"</SPAN>]</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Table</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">int</SPAN> <SPAN style="COLOR: blue">this</SPAN>[<SPAN style="COLOR: blue">string</SPAN> key]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: #2b91af">Convert</SPAN>.ToInt32(key); }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Table</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> tab = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Table</SPAN>();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">int</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> x = tab[<SPAN style="COLOR: #a31515">"10"</SPAN>];</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">int</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> y = tab[<SPAN style="COLOR: #a31515">"12"</SPAN>];</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Indexed Properties</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Table() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Values</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">with</SPAN> get(key : string) = int key</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.MultipleValues</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">with</SPAN> get(key1, key2) = key1 + key2</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal mce_keep="true">&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> tab = Table()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> x = tab.Values(<SPAN style="COLOR: maroon">"10"</SPAN>)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> y = tab.Values(<SPAN style="COLOR: maroon">"12"</SPAN>)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> a = tab.MultipleValues(10, 5)</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>N/A. C# does not support this feature.</P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Abstract classes</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">[&lt;AbstractClass&gt;]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Shape() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">abstract</SPAN> Name : string <SPAN style="COLOR: blue">with</SPAN> get</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">abstract</SPAN> Scale : float <SPAN style="COLOR: blue">-&gt;</SPAN> Shape</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal mce_keep="true">&nbsp;</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">abstract</SPAN> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Shape</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">abstract</SPAN> <SPAN style="COLOR: blue">string</SPAN> Name { <SPAN style="COLOR: blue">get</SPAN>; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">abstract</SPAN> <SPAN style="COLOR: #2b91af">Shape</SPAN> Scale(<SPAN style="COLOR: blue">double</SPAN> scale);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal mce_keep="true">&nbsp;</P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Derive from a base class and overriding base methods with generics</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">[&lt;AbstractClass&gt;]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Shape&lt;'T&gt;() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">abstract</SPAN> Name : string <SPAN style="COLOR: blue">with</SPAN> get</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">abstract</SPAN> Scale : float <SPAN style="COLOR: blue">-&gt;</SPAN> 'T</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Vector(angle, mag) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">inherit</SPAN> Shape&lt;Vector&gt;()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Angle = angle</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Mag = makg</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">override</SPAN> this.Name = <SPAN style="COLOR: maroon">"Vector"</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">override</SPAN> this.Scale(factor) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vector(angle, mag * factor)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = Vector(45., 10.)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v2 = v.Scale(0.5)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal mce_keep="true">&nbsp;</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">abstract</SPAN> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Shape</SPAN>&lt;T&gt;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">abstract</SPAN> <SPAN style="COLOR: blue">string</SPAN> Name { <SPAN style="COLOR: blue">get</SPAN>; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">abstract</SPAN> T Scale(<SPAN style="COLOR: blue">double</SPAN> scale);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN> : <SPAN style="COLOR: #2b91af">Shape</SPAN>&lt;<SPAN style="COLOR: #2b91af">Vector</SPAN>&gt;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> angle;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">double</SPAN> mag;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Angle {<SPAN style="COLOR: blue">get</SPAN>{<SPAN style="COLOR: blue">return</SPAN> angle;}}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Mag {<SPAN style="COLOR: blue">get</SPAN>{<SPAN style="COLOR: blue">return</SPAN> mag;}}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> Vector(<SPAN style="COLOR: blue">double</SPAN> angle, <SPAN style="COLOR: blue">double</SPAN> mag)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.angle = angle;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.mag = mag;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">override</SPAN> <SPAN style="COLOR: blue">string</SPAN> Name</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: #a31515">"Vector"</SPAN>; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">override</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN> Scale(<SPAN style="COLOR: blue">double</SPAN> scale)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(<SPAN style="COLOR: blue">this</SPAN>.Angle,</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.Mag * scale);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal mce_keep="true">&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(45, 10);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v2 = v.Scale(0.5);</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Calling a base class method</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Animal() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Rest() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: green">// Rest for the animal</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Dog() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">inherit</SPAN> Animal()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Run() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: green">// Run</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">base</SPAN>.Rest()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal mce_keep="true">&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> brian = <SPAN style="COLOR: blue">new</SPAN> Dog()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">brian.Run()</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Animal</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">void</SPAN> Rest()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: green">// Rest for the animal</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Dog</SPAN> : <SPAN style="COLOR: #2b91af">Animal</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">void</SPAN> Run()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Run</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; base</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">.Rest();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal mce_keep="true">&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Dog</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> brian = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Dog</SPAN>();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">brian.Run();</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Implementing an interface</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> IVector =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">abstract</SPAN> Mag : double <SPAN style="COLOR: blue">with</SPAN> get</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">abstract</SPAN> Scale : float <SPAN style="COLOR: blue">-&gt;</SPAN> IVector</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Vector(x, y) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">interface</SPAN> IVector <SPAN style="COLOR: blue">with</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Mag = sqrt(x * x + y * y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Scale(s) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vector(x * s, y * s) :&gt; IVector</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.X = x</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Y = y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal mce_keep="true">&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> Vector(1., 2.) :&gt; IVector</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> w = v.Scale(0.5)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> mag = w.Mag</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">interface</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: #2b91af">IVector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Mag { <SPAN style="COLOR: blue">get</SPAN>; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; IVector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Scale(<SPAN style="COLOR: blue">double</SPAN> s);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">class</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: #2b91af">Vector</SPAN> : <SPAN style="COLOR: #2b91af">IVector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Vector(<SPAN style="COLOR: blue">double</SPAN> x, <SPAN style="COLOR: blue">double</SPAN> y)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">.x = x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">.y = y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> X</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.x; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">double</SPAN> Y</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.y; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">double</SPAN> Mag</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: #2b91af">Math</SPAN>.Sqrt(<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.x * <SPAN style="COLOR: blue">this</SPAN>.x +</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y * <SPAN style="COLOR: blue">this</SPAN>.y); }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: #2b91af">IVector</SPAN> Scale(<SPAN style="COLOR: blue">double</SPAN> s)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(<SPAN style="COLOR: blue">this</SPAN>.x * s,</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">this</SPAN>.y * s);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal mce_keep="true">&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">IVector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>(1, 2);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">IVector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> w = v.Scale(0.5);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">double</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> mag = w.Mag;</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Implementing an interface with object expressions</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> ICustomer =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">abstract</SPAN> Name : string <SPAN style="COLOR: blue">with</SPAN> get</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">abstract</SPAN> Age : int <SPAN style="COLOR: blue">with</SPAN> get</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> CreateCustomer name age =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; { <SPAN style="COLOR: blue">new</SPAN> ICustomer <SPAN style="COLOR: blue">with</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Name = name</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Age = age</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal mce_keep="true">&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> c = CreateCustomer <SPAN style="COLOR: maroon">"Snoopy"</SPAN> 16</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> d = CreateCustomer <SPAN style="COLOR: maroon">"Garfield"</SPAN> 5</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>N/A. C# does not support creating object expressions.</P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Events</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> BarkArgs(msg:string) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">inherit</SPAN> EventArgs()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Message = msg</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> BarkDelegate =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">delegate</SPAN> <SPAN style="COLOR: blue">of</SPAN> obj * BarkArgs <SPAN style="COLOR: blue">-&gt;</SPAN> unit</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Dog() = </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">let</SPAN> ev = <SPAN style="COLOR: blue">new</SPAN> Event&lt;BarkDelegate, BarkArgs&gt;()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.Bark(msg) =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ev.Trigger(this, <SPAN style="COLOR: blue">new</SPAN> BarkArgs(msg))</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; [&lt;CLIEvent&gt;]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">member</SPAN> this.OnBark = ev.Publish</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal mce_keep="true">&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> snoopy = <SPAN style="COLOR: blue">new</SPAN> Dog()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">snoopy.OnBark.Add(</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">fun</SPAN> ba <SPAN style="COLOR: blue">-&gt;</SPAN> printfn <SPAN style="COLOR: maroon">"%s"</SPAN> (ba.Message))</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">snoopy.Bark(<SPAN style="COLOR: maroon">"Hello"</SPAN>) </SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">BarkArgs</SPAN> : <SPAN style="COLOR: #2b91af">EventArgs</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; private</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">string</SPAN> msg;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> BarkArgs(<SPAN style="COLOR: blue">string</SPAN> msg)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">.msg = msg;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">string</SPAN> Message</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">get</SPAN> { <SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">this</SPAN>.msg; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">delegate</SPAN> <SPAN style="COLOR: blue">void</SPAN> <SPAN style="COLOR: #2b91af">BarkDelegate</SPAN>(</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: #2b91af">Object</SPAN> sender, <SPAN style="COLOR: #2b91af">BarkArgs</SPAN> args);</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">class</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: #2b91af">Dog</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">event</SPAN> <SPAN style="COLOR: #2b91af">BarkDelegate</SPAN> OnBark;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">void</SPAN> Bark(<SPAN style="COLOR: blue">string</SPAN> msg)</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OnBark(<SPAN style="COLOR: blue">this</SPAN>, <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">BarkArgs</SPAN>(msg));</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal mce_keep="true">&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Dog</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> snoopy = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Dog</SPAN>();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">snoopy.OnBark += <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">BarkDelegate</SPAN>(</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; (sender, msg) =&gt; </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: #2b91af">Console</SPAN>.WriteLine(msg.Message));</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">snoopy.Bark(<SPAN style="COLOR: #a31515">"Hello"</SPAN>);</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Explicit class constructor </P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Vector =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">val</SPAN> <SPAN style="COLOR: blue">mutable</SPAN> x : float</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">val</SPAN> <SPAN style="COLOR: blue">mutable</SPAN> y : float</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">new</SPAN>() = {x = 0.; y = 0.}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = Vector()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">v.x &lt;- 10.</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">v.y &lt;- 10.</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"></SPAN>&nbsp;</P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Explicit public fields</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Vector() =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; [&lt;DefaultValue()&gt;]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">val</SPAN> <SPAN style="COLOR: blue">mutable</SPAN> x : int</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; [&lt;DefaultValue()&gt;]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">val</SPAN> <SPAN style="COLOR: blue">mutable</SPAN> y : int</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = Vector()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">v.x &lt;- 10</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">v.y &lt;- 10</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">int</SPAN> x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">int</SPAN> y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">v.x = 10;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">v.y = 10;</SPAN></P></TD></TR>
<TR style="PAGE-BREAK-INSIDE: avoid">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=175>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal>Explicit struct definition</P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.75in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=360>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">[&lt;Struct&gt;]</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">type</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> Vector =</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">val</SPAN> <SPAN style="COLOR: blue">mutable</SPAN> <SPAN style="COLOR: blue">public</SPAN> x : int</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">val</SPAN> <SPAN style="COLOR: blue">mutable</SPAN> <SPAN style="COLOR: blue">public</SPAN> y : int</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">let</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">mutable</SPAN> v = Vector()</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">v.x &lt;- 10</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">v.y &lt;- 10</SPAN></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" vAlign=top width=330>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt">public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> <SPAN style="COLOR: blue">struct</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">{</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">int</SPAN> x;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">int</SPAN> y;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">}</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 9pt">// Usage:</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9pt">Vector</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"> v = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Vector</SPAN>();</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">v.x = 10;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt">v.y = 10;</SPAN></P></TD></TR></TBODY></TABLE>
<P class=MsoNormal mce_keep="true">&nbsp;</P></DIV>]]></content:encoded>
    </item>
    <item>
      <title>SIGCSE 2010 and F#</title>
      <link>https://docs.microsoft.com/archive/blogs/timng/sigcse-2010-and-f</link>
      <pubDate>Thu, 18 Mar 2010 09:21:00 GMT</pubDate>
      <dc:creator><![CDATA[Timothy Ng]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/timng/2010/03/18/sigcse-2010-and-f/</guid>
      <description><![CDATA[This past week I had the chance to attend SIGCSE 2010 and present a session on F#. It was a ton of...]]></description>
      <content:encoded><![CDATA[<P>This past week I had the chance to attend SIGCSE 2010 and present a session on F#. It was a ton of fun and it was great to talk to many people about F# and how we on the team believe that investing in F#, both professionally and academically, is a fantastic thing. If you would like to get in touch with me about any F# related discussions, just send me an <A href="http://blogs.msdn.com/timng/contact.aspx" mce_href="http://blogs.msdn.com/timng/contact.aspx">email</A>!</P>
<P>You can download the <A href="https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=timfsharpdemosamples&amp;ReleaseId=4327" mce_href="https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=timfsharpdemosamples&amp;ReleaseId=4327">slides and sample code</A>. For a more indepth tutorial on F#, check out <A href="http://blogs.msdn.com/dsyme/archive/2009/10/10/f-tutorial-code-and-slides-jaoo-2009-edition.aspx" mce_href="http://blogs.msdn.com/dsyme/archive/2009/10/10/f-tutorial-code-and-slides-jaoo-2009-edition.aspx">Don’s blog here</A>, and the <A href="https://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Don-Syme-Introduction-to-F-1-of-3/" mce_href="https://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Don-Syme-Introduction-to-F-1-of-3/">channel 9 videos</A> here. Download F# here and find more information at our <A href="http://www.fsharp.net/" mce_href="http://www.fsharp.net">F# center</A>.</P>]]></content:encoded>
    </item>
  </channel>
</rss>