<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Sharp Things</title><link>http://blogs.msdn.com/b/jomo_fisher/</link><description /><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Use FsLex and FsYacc to make a parser in F#</title><link>http://blogs.msdn.com/b/jomo_fisher/archive/2010/06/15/use-fslex-and-fsyacc-to-make-a-parser-in-f.aspx</link><pubDate>Tue, 15 Jun 2010 22:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10025446</guid><dc:creator>Jomo Fisher MSFT</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/jomo_fisher/rsscomments.aspx?WeblogPostID=10025446</wfw:commentRss><comments>http://blogs.msdn.com/b/jomo_fisher/archive/2010/06/15/use-fslex-and-fsyacc-to-make-a-parser-in-f.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Calibri; color: #000000; font-size: small;"&gt;&lt;em&gt;Update: The template I posted yesterday was for PowerPack 1.9.9.9 which is not the most recent version available. I have since updated the template to target PowerPack 2.0.0.0. If you installed the old template you may need to uninstall at Tools\Extension Manager...&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Calibri; color: #000000; font-size: small;"&gt;&lt;em&gt;-----------------------------&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Calibri; color: #000000; font-size: small;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Calibri; color: #000000; font-size: small;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Calibri; color: #000000; font-size: small;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Calibri; color: #000000; font-size: small;"&gt;Jomo Fisher&amp;mdash;F# is excellent for parsing text and creating new languages. The F# PowerPack contains two tools&amp;mdash;FsLex.exe and FsYacc.exe&amp;mdash;to create powerful lexers and parsers. However, it isn&amp;rsquo;t so easy to configure a Visual Studio project correctly to use these tools. To help with this, I made a project template that you can use to get started quickly. Just follow these quick steps:&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;span style="color: #000000;"&gt;&lt;span style="mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;1)&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;Download the F# PowerPack from &lt;/span&gt;&lt;/span&gt;&lt;a href="http://fsharppowerpack.codeplex.com/releases"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-family: Calibri; color: #0000ff; font-size: small;"&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Calibri; color: #000000; font-size: small;"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;span style="color: #000000;"&gt;&lt;span style="mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;2)&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;In VS2010, go to File\New Project. Select &amp;lsquo;Online Templates&amp;rsquo; and search for &amp;lsquo;F# Parsed&amp;rsquo; (or my name).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;span style="font-family: Calibri; color: #000000; font-size: small;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-40-08-metablogapi/4314.LexYacc.png"&gt;&lt;img height="376" width="760" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-40-08-metablogapi/2744.LexYacc_5F00_thumb.png" alt="LexYacc" border="0" title="LexYacc" class="wlDisabledImage" style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;span style="font-family: Calibri; color: #000000; font-size: small;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600" id="_x0000_t75"&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;stroke joinstyle="miter"&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;stroke&gt;&lt;/stroke&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f eqn="sum @0 1 0"&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f eqn="sum 0 0 @1"&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f eqn="prod @2 1 2"&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f eqn="prod @3 21600 pixelWidth"&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f eqn="prod @3 21600 pixelHeight"&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f eqn="sum @0 0 1"&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f eqn="prod @6 1 2"&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f eqn="prod @7 21600 pixelWidth"&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f eqn="sum @8 21600 0"&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f eqn="prod @7 21600 pixelHeight"&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f eqn="sum @10 21600 0"&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;f&gt;&lt;/f&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;&lt;formulas&gt;&lt;/formulas&gt;
&lt;path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;
&lt;path&gt;&lt;/path&gt;&lt;lock aspectratio="t" v:ext="edit"&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;lock&gt;&lt;/lock&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shapetype&gt;&lt;/shapetype&gt;&lt;shape type="#_x0000_t75" o:spid="_x0000_i1025" id="Picture_x0020_7" style="width: 468pt; height: 230.25pt; visibility: visible; mso-wrap-style: square;"&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;imagedata o:title="o:title" src="file:///C:\Users\jomof\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;imagedata&gt;&lt;/imagedata&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;shape&gt;&lt;/shape&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Calibri; color: #000000; font-size: small;"&gt;The starter project implements a simple calculator language that you can grow into a more sophisticated Domain Specific Language or text processing application.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Calibri; color: #000000; font-size: small;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Calibri; color: #000000; font-size: small;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN" style="mso-ansi-language: en"&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;Credit goes to Matt Valerio and Brian McNamara for figuring out the details and to Don Syme for making the calculator language that this is based on. Bugs and omissions are probably my fault. &lt;span lang="EN" style="mso-ansi-language: en"&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;Please let me know what you think, and whether you have any issues or spot any bugs that I should address.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN" style="font-family: 'Calibri','sans-serif'; color: black; mso-ansi-language: en"&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN" style="font-family: 'Calibri','sans-serif'; color: black; mso-ansi-language: en"&gt;&lt;span style="font-size: small;"&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="font-family: 'Arial','sans-serif'; color: #333333; font-size: 9pt; mso-ansi-language: en"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10025446" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/F_2300_/">F#</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/FsYacc/">FsYacc</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/Yacc/">Yacc</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/PowerPack/">PowerPack</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/FsLex/">FsLex</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/Lex/">Lex</category></item><item><title>Creating an OData Web Service with F#</title><link>http://blogs.msdn.com/b/jomo_fisher/archive/2010/05/28/creating-an-odata-web-service-with-f.aspx</link><pubDate>Sat, 29 May 2010 00:17:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10017183</guid><dc:creator>Jomo Fisher MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/jomo_fisher/rsscomments.aspx?WeblogPostID=10017183</wfw:commentRss><comments>http://blogs.msdn.com/b/jomo_fisher/archive/2010/05/28/creating-an-odata-web-service-with-f.aspx#comments</comments><description>&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: #333333; font-size: 9pt; mso-ansi-language: en" lang="EN"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: #333333; mso-ansi-language: en; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;" lang="EN"&gt;     &lt;p style="line-height: 13.5pt; margin: 0in 0in 0pt; background: white" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: #333333; mso-ansi-language: en; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;" lang="EN"&gt;&lt;font size="3"&gt;Jomo Fisher—I’ve spent a little time looking at the &lt;/font&gt;&lt;a href="http://www.odata.org/"&gt;&lt;b&gt;&lt;span style="color: purple"&gt;&lt;u&gt;&lt;font size="3"&gt;OData Web Service Protocol&lt;/font&gt;&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;font size="3"&gt;. There is quite a lot to like about it. It is an open, REST-ful format for communicating with a web service as if it were a database. You can query an OData service with LINQ.           &lt;p&gt;&lt;/p&gt;         &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="line-height: normal; margin: 0in 0in 0pt; background: white; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: #333333; mso-ansi-language: en; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;" lang="EN"&gt;&lt;font size="3"&gt;To help me learn about it I set out to write a simple OData web service. I expected to have to do quite a lot of work because OData is very rich and just parsing the urls, &lt;/font&gt;&lt;a href="http://www.odata.org/developers/protocols/uri-conventions"&gt;&lt;b&gt;&lt;span style="color: purple"&gt;&lt;u&gt;&lt;font size="3"&gt;which can contain SQL-like queries&lt;/font&gt;&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;font size="3"&gt;, looked to be hard work.&amp;#160; &lt;p&gt;&lt;/p&gt;         &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="line-height: normal; margin: 0in 0in 0pt; background: white; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: #333333; mso-ansi-language: en; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;" lang="EN"&gt;It turned out, however, to be pretty straight-forward. You basically just need to implement &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: #333333; mso-ansi-language: en; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;" lang="EN"&gt;IDataServiceQueryProvider&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: #333333; mso-ansi-language: en; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;" lang="EN"&gt; and &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: black; mso-ansi-language: en; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;" lang="EN"&gt;IDataServiceMetadataProvider&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black; mso-ansi-language: en; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;" lang="EN"&gt;. &lt;/span&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: #333333; mso-ansi-language: en; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;" lang="EN"&gt;All the heavy-lifting in terms of parsing is done for you. You get a nice System.Linq Expression which is easy to deal with (mainly because my service uses LINQ to Objects under the covers).           &lt;p&gt;&lt;/p&gt;         &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;      &lt;p style="line-height: normal; margin: 0in 0in 0pt; background: white; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: #333333; mso-ansi-language: en; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;" lang="EN"&gt;&lt;font size="3"&gt; If you’d like to take a look at the service I wrote, I published it on Visual Studio Gallery. You just need to go to File\New Project in Visual Studio 2010:           &lt;p&gt;&lt;/p&gt;         &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="line-height: 13.5pt; margin: 0in 0in 0pt; background: white" class="MsoNormal"&gt;&lt;/p&gt;   &lt;/span&gt;    &lt;p style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;"&gt;       &lt;p&gt;&lt;font color="#000000" size="3"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height: 13.5pt; background: white"&gt;&lt;/p&gt; &lt;/span&gt;  &lt;p&gt;   &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-40-08-metablogapi/1778.odata_5F00_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="odata" border="0" alt="odata" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-40-08-metablogapi/3438.odata_5F00_thumb.png" width="755" height="383" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p style="line-height: 13.5pt; background: white"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: #333333; font-size: 11pt; mso-ansi-language: en" lang="EN"&gt;Please let me know what you think, and whether you have any issues or spot any bugs.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;   &lt;p&gt;&lt;span style="color: black; mso-ansi-language: en; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri" lang="EN"&gt;&lt;span style="font-family: calibri; font-size: small"&gt;This posting is provided &amp;quot;AS IS&amp;quot; with no warranties, and confers no rights.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10017183" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/F_2300_/">F#</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/Neat+Samples/">Neat Samples</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/OData/">OData</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/LINQ/">LINQ</category></item><item><title>F# Object Oriented Programming</title><link>http://blogs.msdn.com/b/jomo_fisher/archive/2010/05/26/f-object-oriented-programming.aspx</link><pubDate>Wed, 26 May 2010 22:44:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10015957</guid><dc:creator>Jomo Fisher MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/jomo_fisher/rsscomments.aspx?WeblogPostID=10015957</wfw:commentRss><comments>http://blogs.msdn.com/b/jomo_fisher/archive/2010/05/26/f-object-oriented-programming.aspx#comments</comments><description>&lt;p&gt;Jomo Fisher—F# has a functional heritage but it is actually very good at OO as well.&amp;#160; Here’s an example of its nice, clean syntax for declaring a class:&lt;/p&gt;  &lt;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:169a54ab-1a9d-4042-9a81-a0ddc38f01ea" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px"&gt;Code Snippet&lt;/div&gt; &lt;div style="background: #ddd; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;type&lt;/span&gt; Vector(x : float, y : float) =&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;member&lt;/span&gt; this.X = x&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;member&lt;/span&gt; this.Y = y&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Tim Ng posted a &lt;a href="http://blogs.msdn.com/b/timng/archive/2010/04/06/f-quick-guides-object-oriented-programming.aspx"&gt;nice comparison&lt;/a&gt; of F# to C# for OO language features. If you’re a C# programmer interested in F#, this is a great place to start.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;span style="color: black; mso-ansi-language: en; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri" lang="EN"&gt;&lt;span style="font-family: calibri; font-size: small"&gt;This posting is provided &amp;quot;AS IS&amp;quot; with no warranties, and confers no rights.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10015957" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/C_2300_/">C#</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/F_2300_/">F#</category></item><item><title>How to Enumerate all WMI Classes</title><link>http://blogs.msdn.com/b/jomo_fisher/archive/2010/05/25/how-to-enumerate-all-wmi-classes.aspx</link><pubDate>Tue, 25 May 2010 17:08:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10014868</guid><dc:creator>Jomo Fisher MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/jomo_fisher/rsscomments.aspx?WeblogPostID=10014868</wfw:commentRss><comments>http://blogs.msdn.com/b/jomo_fisher/archive/2010/05/25/how-to-enumerate-all-wmi-classes.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span lang="EN" style="color: black; mso-ansi-language: en; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Jomo Fisher&amp;mdash;Quick sample today. I&amp;rsquo;m mainly posting this because it took me a while to figure it out and I hope it might save someone some time. This is the F# code you would useto enumerate all WMI classes on your system and show the properties of each. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;of each. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:6e251c52-520f-4809-8d5c-4990d104021e" style="margin: 0px; display: inline; float: none; padding: 0px;"&gt;
&lt;div style="font-family: 'Courier New', Courier, Monospace; color: #000; font-size: 10pt; border: #000080 1px solid;"&gt;
&lt;div style="padding-bottom: 2px; padding-left: 5px; padding-right: 5px; font-family: Verdana, Tahoma, Arial, sans-serif; background: #000080; color: #fff; font-weight: bold; padding-top: 2px;"&gt;Code Snippet&lt;/div&gt;
&lt;div style="background: #ddd; max-height: 300px; overflow: auto;"&gt;&lt;ol style="padding-bottom: 0px; margin: 0px 0px 0px 2.5em; padding-left: 5px; padding-right: 0px; background: #ffffff; padding-top: 0px;"&gt;
&lt;li&gt;&lt;span style="color: #008000;"&gt;// WalkWmiTypes.fsx&lt;/span&gt; &lt;/li&gt;
&lt;li style="background: #f3f3f3;"&gt;&lt;span style="color: #008000;"&gt;// Enumerate all WMI types on the local machine and show their property names and types.&lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style="color: #0000ff;"&gt;#r&lt;/span&gt; &lt;span style="color: #800000;"&gt;"System.Management"&lt;/span&gt; &lt;/li&gt;
&lt;li style="background: #f3f3f3;"&gt;&lt;span style="color: #0000ff;"&gt;open&lt;/span&gt; System.Management &lt;/li&gt;
&lt;li&gt;&amp;nbsp; &lt;/li&gt;
&lt;li style="background: #f3f3f3;"&gt;&lt;span style="color: #0000ff;"&gt;let&lt;/span&gt; scope = ManagementScope(&lt;span style="color: #800000;"&gt;"\\\\localhost\\root\\cimv2"&lt;/span&gt;) &lt;/li&gt;
&lt;li&gt;&lt;span style="color: #0000ff;"&gt;let&lt;/span&gt; path = ManagementPath(&lt;span style="color: #800000;"&gt;""&lt;/span&gt;) &lt;/li&gt;
&lt;li style="background: #f3f3f3;"&gt;&lt;span style="color: #0000ff;"&gt;let&lt;/span&gt; mclass = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; ManagementClass(scope, path, ObjectGetOptions()) &lt;/li&gt;
&lt;li&gt;&lt;span style="color: #0000ff;"&gt;let&lt;/span&gt; options = EnumerationOptions() &lt;/li&gt;
&lt;li style="background: #f3f3f3;"&gt;options.EnumerateDeep &amp;lt;- &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&amp;nbsp; &lt;/li&gt;
&lt;li style="background: #f3f3f3;"&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt; obj &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt; mclass.GetSubclasses(options) &lt;span style="color: #0000ff;"&gt;do&lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printfn &lt;span style="color: #800000;"&gt;"%s"&lt;/span&gt; (obj.ToString().Split(&lt;span style="color: #800000;"&gt;':'&lt;/span&gt;).[1]) &lt;/li&gt;
&lt;li style="background: #f3f3f3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt; prop &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt; obj.Properties &lt;span style="color: #0000ff;"&gt;do&lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printfn &lt;span style="color: #800000;"&gt;"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%s:%A"&lt;/span&gt; prop.Name prop.Type &lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span lang="EN" style="color: black; mso-ansi-language: en; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri;"&gt;&lt;/span&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span lang="EN" style="color: black; mso-ansi-language: en; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;This is pure .NET, so it should be easily translatable to C# and VB. Let me know if you run into problems with that. The result looks like:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:bb1d6a7f-f7c4-4238-a4b0-1717fe504be7" style="margin: 0px; display: inline; float: none; padding: 0px;"&gt;
&lt;div style="font-family: 'Courier New', Courier, Monospace; color: #000; font-size: 10pt; border: #000080 1px solid;"&gt;
&lt;div style="padding-bottom: 2px; padding-left: 5px; padding-right: 5px; font-family: Verdana, Tahoma, Arial, sans-serif; background: #000080; color: #fff; font-weight: bold; padding-top: 2px;"&gt;Output&lt;/div&gt;
&lt;div style="background: #fff; max-height: 300px; overflow: auto;"&gt;&lt;ol style="padding-bottom: 0px; margin: 0px; padding-left: 5px; padding-right: 0px; background: #ffffff; padding-top: 0px;"&gt;
&lt;li&gt;Msft_WmiProvider_DeleteClassAsyncEvent_Post &lt;/li&gt;
&lt;li style="background: #f3f3f3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ClassName:String &lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Flags:UInt32 &lt;/li&gt;
&lt;li style="background: #f3f3f3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HostingGroup:String &lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HostingSpecification:UInt32 &lt;/li&gt;
&lt;li style="background: #f3f3f3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Locale:String &lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Namespace:String &lt;/li&gt;
&lt;li style="background: #f3f3f3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ObjectParameter:Object &lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;provider:String &lt;/li&gt;
&lt;li style="background: #f3f3f3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ResultCode:UInt32 &lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SECURITY_DESCRIPTOR:UInt8 &lt;/li&gt;
&lt;li style="background: #f3f3f3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StringParameter:String &lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TIME_CREATED:UInt64 &lt;/li&gt;
&lt;li style="background: #f3f3f3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TransactionIdentifer:String &lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;User:String &lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span lang="EN" style="color: black; mso-ansi-language: en; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span lang="EN" style="color: black; mso-ansi-language: en; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10014868" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/F_2300_/">F#</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/Neat+Samples/">Neat Samples</category></item><item><title>F# Destroys Invading Aliens</title><link>http://blogs.msdn.com/b/jomo_fisher/archive/2010/03/18/f-destroys-invading-aliens.aspx</link><pubDate>Thu, 18 Mar 2010 15:50:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9981213</guid><dc:creator>Jomo Fisher MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/jomo_fisher/rsscomments.aspx?WeblogPostID=9981213</wfw:commentRss><comments>http://blogs.msdn.com/b/jomo_fisher/archive/2010/03/18/f-destroys-invading-aliens.aspx#comments</comments><description>&lt;p&gt;Wow, check out Chris’s StarCraft bot in F#: &lt;a href="http://blogs.msdn.com/chrsmith/archive/2010/03/18/writing-a-starcraft-bot-in-f.aspx"&gt;http://blogs.msdn.com/chrsmith/archive/2010/03/18/writing-a-starcraft-bot-in-f.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9981213" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/F_2300_/">F#</category></item><item><title>F# Team is Hiring a Cross-Platform Developer</title><link>http://blogs.msdn.com/b/jomo_fisher/archive/2010/03/15/f-team-is-hiring-a-cross-platform-developer.aspx</link><pubDate>Mon, 15 Mar 2010 20:29:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9979006</guid><dc:creator>Jomo Fisher MSFT</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/jomo_fisher/rsscomments.aspx?WeblogPostID=9979006</wfw:commentRss><comments>http://blogs.msdn.com/b/jomo_fisher/archive/2010/03/15/f-team-is-hiring-a-cross-platform-developer.aspx#comments</comments><description>&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="mso-ansi-language: en-gb" lang="EN-GB"&gt;     &lt;p&gt;&lt;font color="#000000" size="3" face="Calibri"&gt;We’re hiring a developer to help advance our cross-platform presence. Please do send and application if this looks like a good match for you.&lt;/font&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="mso-ansi-language: en-gb" lang="EN-GB"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="mso-ansi-language: en-gb" lang="EN-GB"&gt;     &lt;p&gt;&lt;font color="#000000" size="3" face="Calibri"&gt;From Don Syme’s blog:&lt;/font&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="mso-ansi-language: en-gb" lang="EN-GB"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt 0.5in" class="MsoNormal"&gt;&lt;font color="#000000"&gt;&lt;span style="font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 14pt; mso-ansi-language: en; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;" lang="EN"&gt;Contract Position in the F# Team: Compiler and Visual Tools Software Engineer for Cross-Platform F# &lt;/span&gt;&lt;span style="font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 14pt; mso-ansi-language: en-gb; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;" lang="EN-GB"&gt;&lt;shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"&gt;&lt;stroke joinstyle="miter"&gt;&lt;/stroke&gt;&lt;formulas&gt;&lt;f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/f&gt;&lt;f eqn="sum @0 1 0"&gt;&lt;/f&gt;&lt;f eqn="sum 0 0 @1"&gt;&lt;/f&gt;&lt;f eqn="prod @2 1 2"&gt;&lt;/f&gt;&lt;f eqn="prod @3 21600 pixelWidth"&gt;&lt;/f&gt;&lt;f eqn="prod @3 21600 pixelHeight"&gt;&lt;/f&gt;&lt;f eqn="sum @0 0 1"&gt;&lt;/f&gt;&lt;f eqn="prod @6 1 2"&gt;&lt;/f&gt;&lt;f eqn="prod @7 21600 pixelWidth"&gt;&lt;/f&gt;&lt;f eqn="sum @8 21600 0"&gt;&lt;/f&gt;&lt;f eqn="prod @7 21600 pixelHeight"&gt;&lt;/f&gt;&lt;f eqn="sum @10 21600 0"&gt;&lt;/f&gt;&lt;/formulas&gt;&lt;path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/path&gt;&lt;lock aspectratio="t" v:ext="edit"&gt;&lt;/lock&gt;&lt;/shapetype&gt;&lt;shape style="width: 4.5pt; height: 9pt" id="Picture_x0020_1" alt="http://blogs.msdn.com/Themes/default/images/common/star-left-off.gif" type="#_x0000_t75" o:spid="_x0000_i1025"&gt;&lt;imagedata o:href="cid:image001.gif@01CAC020.2FEDCAC0" src="file:///C:\Users\jomof\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif"&gt;&lt;/imagedata&gt;&lt;/shape&gt;&lt;shape style="width: 3.75pt; height: 9pt" id="Picture_x0020_2" alt="http://blogs.msdn.com/Themes/default/images/common/star-right-off.gif" type="#_x0000_t75" o:spid="_x0000_i1026"&gt;&lt;imagedata o:href="cid:image002.gif@01CAC020.2FEDCAC0" src="file:///C:\Users\jomof\AppData\Local\Temp\msohtmlclip1\01\clip_image002.gif"&gt;&lt;/imagedata&gt;&lt;/shape&gt;&lt;shape style="width: 4.5pt; height: 9pt" id="Picture_x0020_3" alt="http://blogs.msdn.com/Themes/default/images/common/star-left-off.gif" type="#_x0000_t75" o:spid="_x0000_i1027"&gt;&lt;imagedata o:href="cid:image001.gif@01CAC020.2FEDCAC0" src="file:///C:\Users\jomof\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif"&gt;&lt;/imagedata&gt;&lt;/shape&gt;&lt;shape style="width: 3.75pt; height: 9pt" id="Picture_x0020_4" alt="http://blogs.msdn.com/Themes/default/images/common/star-right-off.gif" type="#_x0000_t75" o:spid="_x0000_i1028"&gt;&lt;imagedata o:href="cid:image002.gif@01CAC020.2FEDCAC0" src="file:///C:\Users\jomof\AppData\Local\Temp\msohtmlclip1\01\clip_image002.gif"&gt;&lt;/imagedata&gt;&lt;/shape&gt;&lt;shape style="width: 4.5pt; height: 9pt" id="Picture_x0020_5" alt="http://blogs.msdn.com/Themes/default/images/common/star-left-off.gif" type="#_x0000_t75" o:spid="_x0000_i1029"&gt;&lt;imagedata o:href="cid:image001.gif@01CAC020.2FEDCAC0" src="file:///C:\Users\jomof\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif"&gt;&lt;/imagedata&gt;&lt;/shape&gt;&lt;shape style="width: 3.75pt; height: 9pt" id="Picture_x0020_6" alt="http://blogs.msdn.com/Themes/default/images/common/star-right-off.gif" type="#_x0000_t75" o:spid="_x0000_i1030"&gt;&lt;imagedata o:href="cid:image002.gif@01CAC020.2FEDCAC0" src="file:///C:\Users\jomof\AppData\Local\Temp\msohtmlclip1\01\clip_image002.gif"&gt;&lt;/imagedata&gt;&lt;/shape&gt;&lt;shape style="width: 4.5pt; height: 9pt" id="Picture_x0020_7" alt="http://blogs.msdn.com/Themes/default/images/common/star-left-off.gif" type="#_x0000_t75" o:spid="_x0000_i1031"&gt;&lt;imagedata o:href="cid:image001.gif@01CAC020.2FEDCAC0" src="file:///C:\Users\jomof\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif"&gt;&lt;/imagedata&gt;&lt;/shape&gt;&lt;shape style="width: 3.75pt; height: 9pt" id="Picture_x0020_8" alt="http://blogs.msdn.com/Themes/default/images/common/star-right-off.gif" type="#_x0000_t75" o:spid="_x0000_i1032"&gt;&lt;imagedata o:href="cid:image002.gif@01CAC020.2FEDCAC0" src="file:///C:\Users\jomof\AppData\Local\Temp\msohtmlclip1\01\clip_image002.gif"&gt;&lt;/imagedata&gt;&lt;/shape&gt;&lt;shape style="width: 4.5pt; height: 9pt" id="Picture_x0020_9" alt="http://blogs.msdn.com/Themes/default/images/common/star-left-off.gif" type="#_x0000_t75" o:spid="_x0000_i1033"&gt;&lt;imagedata o:href="cid:image001.gif@01CAC020.2FEDCAC0" src="file:///C:\Users\jomof\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif"&gt;&lt;/imagedata&gt;&lt;/shape&gt;&lt;shape style="width: 3.75pt; height: 9pt" id="Picture_x0020_10" alt="http://blogs.msdn.com/Themes/default/images/common/star-right-off.gif" type="#_x0000_t75" o:spid="_x0000_i1034"&gt;&lt;imagedata o:href="cid:image002.gif@01CAC020.2FEDCAC0" src="file:///C:\Users\jomof\AppData\Local\Temp\msohtmlclip1\01\clip_image002.gif"&gt;&lt;/imagedata&gt;&lt;/shape&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 14pt; mso-ansi-language: en; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;" lang="EN"&gt;       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin-left: 0.5in"&gt;&lt;span style="font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: en" lang="EN"&gt;&lt;font color="#000000"&gt;We are now seeking applications for a contract position with the F# team!       &lt;p&gt;&lt;/p&gt;     &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 0.5in"&gt;&lt;span style="font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: en" lang="EN"&gt;&lt;font color="#000000"&gt;Contract length: 9 months – 1 year       &lt;br /&gt;Hiring Group: Microsoft Research, Cambridge        &lt;br /&gt;Location: Cambridge UK. Remote working possible.         &lt;p&gt;&lt;/p&gt;     &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 0.5in"&gt;&lt;span style="font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: en" lang="EN"&gt;&lt;font color="#000000"&gt;F# is a cross-platform language executing on any CLI implementation, including those found on Windows, Mac OS/X, Linux, Silverlight, XBox 360 and mobile phones. We are seeking a talented and highly motivated software engineer with experience in compilers and/or visual tools to make targeted improvements to the support the execution, development and tools experience across these platforms. Other tasks will include working with implementors of these CLI implementations, preparing web hosted material, preparing components for shared and open source release, working directly with communities interested in using F# across multiple platforms, including universities, and preparing demonstration applications for the use of F# across platforms.       &lt;p&gt;&lt;/p&gt;     &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 0.5in"&gt;&lt;span style="font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: en" lang="EN"&gt;&lt;font color="#000000"&gt;The ideal candidate would have a passion for the F# language, strong .NET programming skills, knowledge of web design and programming, and knowledge of several of the above platforms. Experience in authoring parts of a compiler and/or interactive development environment would also be helpful, as would experience in open source development. The candidate will have the opportunity to work as part of the F# team in Cambridge UK, and a portion of remote working would also be considered.       &lt;p&gt;&lt;/p&gt;     &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 0.5in"&gt;&lt;span style="font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: en" lang="EN"&gt;&lt;font color="#000000"&gt;Please send applications to Don Syme (&lt;/font&gt;&lt;a href="mailto:dsyme@microsoft.com"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;dsyme@microsoft.com&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;font color="#000000"&gt;), or Ruth Lenton (&lt;/font&gt;&lt;a href="mailto:ruth.lenton@microsoft.com"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;ruth.lenton@microsoft.com&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;font color="#000000"&gt;)&amp;#160;&amp;#160; &lt;p&gt;&lt;/p&gt;     &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="mso-ansi-language: en-gb" lang="EN-GB"&gt;&lt;a href="http://blogs.msdn.com/dsyme/archive/2010/03/10/contract-position-in-the-f-team-compiler-and-visual-tools-software-engineer-for-cross-platform-f.aspx"&gt;&lt;u&gt;&lt;font color="#800080" size="3" face="Calibri"&gt;http://blogs.msdn.com/dsyme/archive/2010/03/10/contract-position-in-the-f-team-compiler-and-visual-tools-software-engineer-for-cross-platform-f.aspx&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="mso-ansi-language: en-gb" lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt; &lt;span style="mso-ansi-language: en-gb" lang="EN-GB"&gt;   &lt;p mce_keep="true"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="color: black; mso-ansi-language: en; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri" lang="EN"&gt;This posting is provided &amp;quot;AS IS&amp;quot; with no warranties, and confers no rights.&lt;/span&gt;&lt;span style="font-family: &amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;; font-size: 12pt; mso-ansi-language: en; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;" lang="EN"&gt; &lt;/span&gt;          &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;       &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt; &lt;/span&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9979006" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/F_2300_/">F#</category></item><item><title>Neat Samples: MEF in F# Scripts</title><link>http://blogs.msdn.com/b/jomo_fisher/archive/2010/03/10/neat-samples-f-in-mef-scripts.aspx</link><pubDate>Wed, 10 Mar 2010 18:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9976377</guid><dc:creator>Jomo Fisher MSFT</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/jomo_fisher/rsscomments.aspx?WeblogPostID=9976377</wfw:commentRss><comments>http://blogs.msdn.com/b/jomo_fisher/archive/2010/03/10/neat-samples-f-in-mef-scripts.aspx#comments</comments><description>&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black; FONT-SIZE: 12pt; mso-ansi-language: en; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: 'Times New Roman'" lang=EN&gt;&lt;FONT face=Calibri&gt;Jomo Fisher—I &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/jomo_fisher/archive/2010/03/09/neat-samples-extend-your-f-program-with-mef.aspx#comments" mce_href="http://blogs.msdn.com/jomo_fisher/archive/2010/03/09/neat-samples-extend-your-f-program-with-mef.aspx#comments"&gt;&lt;U&gt;&lt;FONT color=#800080 face=Calibri&gt;posted yesterday&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; about using MEF in F# programs. In the comments &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language: en" lang=EN&gt;&lt;FONT color=#000000&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Oldrich asked if it was possible to do the same thing in F# scripts. It is indeed possible. It actually looks like a really powerful combination because you can naturally extend your scripts just by adding new #load directives at the top. 
&lt;P mce_keep="true"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language: en" lang=EN&gt;&lt;FONT color=#000000&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;There are three pieces to this sample. You have to break your interfaces out into a separate .fsx. Realistically, you’d probably do this in a real compiled F# program too so this isn’t a huge burden on simplicity. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;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:992d8796-c415-48fe-8392-f743539a4b41 class=wlWriterEditableSmartContent&gt;
&lt;DIV style="BORDER-BOTTOM: #000080 1px solid; BORDER-LEFT: #000080 1px solid; FONT-FAMILY: 'Courier New', Courier, Monospace; COLOR: #000; FONT-SIZE: 10pt; BORDER-TOP: #000080 1px solid; BORDER-RIGHT: #000080 1px solid"&gt;
&lt;DIV style="PADDING-BOTTOM: 2px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; FONT-FAMILY: Verdana, Tahoma, Arial, sans-serif; BACKGROUND: #000080; COLOR: #fff; FONT-WEIGHT: bold; PADDING-TOP: 2px"&gt;Code Snippet&lt;/DIV&gt;
&lt;DIV style="BACKGROUND: #ddd; MAX-HEIGHT: 300px; OVERFLOW: auto"&gt;
&lt;OL style="PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 2em; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; BACKGROUND: #ffffff; PADDING-TOP: 0px"&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #008000"&gt;// MefInterfaces.fsx&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #008000"&gt;// Expose an interface&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;type&lt;/SPAN&gt; ITastyTreat =&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: #0000ff"&gt;abstract&lt;/SPAN&gt; Description : string&lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;SPAN style="mso-ansi-language: en" lang=EN&gt;
&lt;P&gt;&lt;FONT color=#000000 size=3 face=Calibri&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;
&lt;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:73ecdb27-1d1a-4e52-af8e-ef0275ac5a5a class=wlWriterEditableSmartContent&gt;
&lt;DIV style="BORDER-BOTTOM: #000080 1px solid; BORDER-LEFT: #000080 1px solid; FONT-FAMILY: 'Courier New', Courier, Monospace; COLOR: #000; FONT-SIZE: 10pt; BORDER-TOP: #000080 1px solid; BORDER-RIGHT: #000080 1px solid"&gt;
&lt;DIV style="PADDING-BOTTOM: 2px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; FONT-FAMILY: Verdana, Tahoma, Arial, sans-serif; BACKGROUND: #000080; COLOR: #fff; FONT-WEIGHT: bold; PADDING-TOP: 2px"&gt;Code Snippet&lt;/DIV&gt;
&lt;DIV style="BACKGROUND: #ddd; MAX-HEIGHT: 300px; OVERFLOW: auto"&gt;
&lt;OL style="PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 2.5em; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; BACKGROUND: #ffffff; PADDING-TOP: 0px"&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #008000"&gt;// ChocolateCookie.fsx&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;#r&lt;/SPAN&gt; &lt;SPAN style="COLOR: #800000"&gt;"System.ComponentModel.Composition"&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #0000ff"&gt;#load&lt;/SPAN&gt; &lt;SPAN style="COLOR: #800000"&gt;"MefInterfaces.fsx"&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #0000ff"&gt;namespace&lt;/SPAN&gt; ChocolateCookie&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;open&lt;/SPAN&gt; MefInterfaces&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #0000ff"&gt;open&lt;/SPAN&gt; System.ComponentModel.Composition&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&lt;/LI&gt;
&lt;LI&gt;[&amp;lt;Export(typeof&amp;lt;ITastyTreat&amp;gt;)&amp;gt;]&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;type&lt;/SPAN&gt; ChocolateCookie() = &lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: #0000ff"&gt;interface&lt;/SPAN&gt; ITastyTreat &lt;SPAN style="COLOR: #0000ff"&gt;with&lt;/SPAN&gt; &lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: #0000ff"&gt;member&lt;/SPAN&gt; __.Description = &lt;SPAN style="COLOR: #800000"&gt;"a delicious chocolate cookie"&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;SPAN style="mso-ansi-language: en" lang=EN&gt;
&lt;P&gt;&lt;FONT color=#000000 size=3 face=Calibri&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;
&lt;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:89f36069-536b-4c15-a3a7-c4569a8a810e class=wlWriterEditableSmartContent&gt;
&lt;DIV style="BORDER-BOTTOM: #000080 1px solid; BORDER-LEFT: #000080 1px solid; FONT-FAMILY: 'Courier New', Courier, Monospace; COLOR: #000; FONT-SIZE: 10pt; BORDER-TOP: #000080 1px solid; BORDER-RIGHT: #000080 1px solid"&gt;
&lt;DIV style="PADDING-BOTTOM: 2px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; FONT-FAMILY: Verdana, Tahoma, Arial, sans-serif; BACKGROUND: #000080; COLOR: #fff; FONT-WEIGHT: bold; PADDING-TOP: 2px"&gt;Code Snippet&lt;/DIV&gt;
&lt;DIV style="BACKGROUND: #ddd; MAX-HEIGHT: 300px; OVERFLOW: auto"&gt;
&lt;OL style="PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 2.5em; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; BACKGROUND: #ffffff; PADDING-TOP: 0px"&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #008000"&gt;// MefHost.fsx&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;#load&lt;/SPAN&gt; &lt;SPAN style="COLOR: #800000"&gt;"ChocolateCookie.fsx"&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;open&lt;/SPAN&gt; System.Reflection&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #0000ff"&gt;open&lt;/SPAN&gt; System.IO&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;open&lt;/SPAN&gt; System.ComponentModel.Composition&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #0000ff"&gt;open&lt;/SPAN&gt; System.ComponentModel.Composition.Hosting&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;open&lt;/SPAN&gt; MefInterfaces&lt;/LI&gt;
&lt;LI&gt;&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&lt;SPAN style="COLOR: #008000"&gt;// Set up MEF&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #0000ff"&gt;let&lt;/SPAN&gt; catalog = &lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt; AggregateCatalog()&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;let&lt;/SPAN&gt; assemblyCatalog = &lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt; AssemblyCatalog(Assembly.GetExecutingAssembly())&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #0000ff"&gt;let&lt;/SPAN&gt; container = &lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt; CompositionContainer(catalog)&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;catalog.Catalogs.Add(assemblyCatalog)&lt;/LI&gt;
&lt;LI&gt;&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&lt;SPAN style="COLOR: #008000"&gt;// Jar that will contain tasty treats&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #0000ff"&gt;type&lt;/SPAN&gt; TreatJar() = &lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;lt;ImportMany(typeof&amp;lt;ITastyTreat&amp;gt;)&amp;gt;] &lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: #0000ff"&gt;let&lt;/SPAN&gt; cookies : seq&amp;lt;ITastyTreat&amp;gt; = &lt;SPAN style="COLOR: #0000ff"&gt;null&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: #0000ff"&gt;member&lt;/SPAN&gt; __.EatTreats() =&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cookies |&amp;gt; Seq.iter(&lt;SPAN style="COLOR: #0000ff"&gt;fun&lt;/SPAN&gt; tt&lt;SPAN style="COLOR: #0000ff"&gt;-&amp;gt;&lt;/SPAN&gt;printfn &lt;SPAN style="COLOR: #800000"&gt;"Yum, it was a %s"&lt;/SPAN&gt; tt.Description)&lt;/LI&gt;
&lt;LI&gt;&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;let&lt;/SPAN&gt; jar = TreatJar()&lt;/LI&gt;
&lt;LI&gt;container.ComposeParts(jar)&lt;/LI&gt;
&lt;LI style="BACKGROUND: #f3f3f3"&gt;jar.EatTreats()&lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black; mso-ansi-language: en; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri" lang=EN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black; mso-ansi-language: en; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri" lang=EN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Thanks Oldrich, for giving me an excuse to try this out. 
&lt;P mce_keep="true"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black; mso-ansi-language: en; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri" lang=EN&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-ansi-language: en; mso-fareast-font-family: 'Times New Roman'" lang=EN&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#000000 size=3 face=Calibri&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9976377" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/F_2300_/">F#</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/Neat+Samples/">Neat Samples</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/MEF/">MEF</category></item><item><title>Neat Samples: Extend your F# program with MEF</title><link>http://blogs.msdn.com/b/jomo_fisher/archive/2010/03/09/neat-samples-extend-your-f-program-with-mef.aspx</link><pubDate>Wed, 10 Mar 2010 00:32:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9975902</guid><dc:creator>Jomo Fisher MSFT</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/jomo_fisher/rsscomments.aspx?WeblogPostID=9975902</wfw:commentRss><comments>http://blogs.msdn.com/b/jomo_fisher/archive/2010/03/09/neat-samples-extend-your-f-program-with-mef.aspx#comments</comments><description>&lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;&lt;span style="mso-ansi-language: en" lang="EN"&gt;&lt;font color="#000000"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Jomo Fisher—The Managed Extensibility Framework is an interesting new technology in .NET 4.0. It lets you set up a plug in system for your application so that your program can acquire new functionality just by, for example, adding a .dll into a particular directory.           &lt;p&gt;&lt;/p&gt;         &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;&lt;span style="mso-ansi-language: en" lang="EN"&gt;&lt;font color="#000000"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;This is a simple example in F#. This code sets up MEF hosting and asks for all extensions in the c:\extensions folder.           &lt;p&gt;&lt;/p&gt;         &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;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:61e441c8-8456-44e7-8220-421c24862b50" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px"&gt;Code Snippet&lt;/div&gt; &lt;div style="background: #ddd; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#008000"&gt;// Host.fs&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#008000"&gt;// A MEF host that eats tasty treats&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;open&lt;/span&gt; System.Reflection&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;open&lt;/span&gt; System.IO&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;open&lt;/span&gt; System.ComponentModel.Composition&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;open&lt;/span&gt; System.ComponentModel.Composition.Hosting&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#008000"&gt;// Expose an interface&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;type&lt;/span&gt; ITastyTreat =&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;abstract&lt;/span&gt; Description : string&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#008000"&gt;// Set up MEF&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;let&lt;/span&gt; catalog = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; AggregateCatalog()&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;let&lt;/span&gt; directoryCatalog = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; DirectoryCatalog(&lt;span style="color:#800000"&gt;@&amp;quot;c:&amp;#92;Extensions&amp;quot;&lt;/span&gt;,&lt;span style="color:#800000"&gt;&amp;quot;*.dll&amp;quot;&lt;/span&gt;)&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;let&lt;/span&gt; container = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; CompositionContainer(catalog)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;catalog.Catalogs.Add(directoryCatalog)&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#008000"&gt;// Jar that will contain tasty treats&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;type&lt;/span&gt; TreatJar() = &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    [&amp;lt;ImportMany(typeof&amp;lt;ITastyTreat&amp;gt;)&amp;gt;] &lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; cookies : seq&amp;lt;ITastyTreat&amp;gt; = &lt;span style="color:#0000ff"&gt;null&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;member&lt;/span&gt; __.EatTreats() =&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        cookies |&amp;gt; Seq.iter(&lt;span style="color:#0000ff"&gt;fun&lt;/span&gt; tt&lt;span style="color:#0000ff"&gt;-&amp;gt;&lt;/span&gt;printfn &lt;span style="color:#800000"&gt;&amp;quot;Yum, it was a %s&amp;quot;&lt;/span&gt; tt.Description)&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;let&lt;/span&gt; jar = TreatJar()&lt;/li&gt; &lt;li&gt;container.ComposeParts(jar)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;jar.EatTreats()&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;&lt;span style="mso-ansi-language: en" lang="EN"&gt;&lt;font color="#000000"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;&lt;span style="mso-ansi-language: en" lang="EN"&gt;&lt;font color="#000000"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;This is how you implement an extension. Just build this into a .dll and drop it in the c:\extensions directory.           &lt;p&gt;&lt;/p&gt;         &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;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:baec95df-f323-434e-815a-75c7e47901fb" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px"&gt;Code Snippet&lt;/div&gt; &lt;div style="background: #ddd; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;namespace&lt;/span&gt; ChocolateCookie&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;open&lt;/span&gt; Host&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;open&lt;/span&gt; System.ComponentModel.Composition&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;[&amp;lt;Export(typeof&amp;lt;ITastyTreat&amp;gt;)&amp;gt;]&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;type&lt;/span&gt; ChocolateCookie() = &lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;interface&lt;/span&gt; ITastyTreat &lt;span style="color:#0000ff"&gt;with&lt;/span&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;member&lt;/span&gt; __.Description = &lt;span style="color:#800000"&gt;&amp;quot;a delicious chocolate cookie&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;&lt;span style="color: black; mso-ansi-language: en; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri" lang="EN"&gt;&lt;font size="3" face="Calibri"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;&lt;span style="color: black; mso-ansi-language: en; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri" lang="EN"&gt;&lt;font size="3" face="Calibri"&gt;Now, if you run the host program you should see this:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;span style="color: black; mso-ansi-language: en; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri" lang="EN"&gt;   &lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;&lt;span style="font-family: consolas; color: black; mso-ansi-language: en" lang="EN"&gt;&lt;font size="3"&gt;Yum, it was a a delicious chocolate cookie         &lt;br /&gt;Press any key to continue . . .&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: consolas; mso-ansi-language: en" lang="EN"&gt;       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0in 0in 10pt" class="MsoNormal"&gt;&lt;/p&gt;   &lt;span style="color: black; mso-ansi-language: en; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri" lang="EN"&gt;&lt;font size="3" face="Calibri"&gt;This posting is provided &amp;quot;AS IS&amp;quot; with no warranties, and confers no rights.&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: en" lang="EN"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/span&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9975902" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/F_2300_/">F#</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/Neat+Samples/">Neat Samples</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/MEF/">MEF</category></item><item><title>Neat Samples: F#, Freebase and DGML</title><link>http://blogs.msdn.com/b/jomo_fisher/archive/2010/03/06/neat-samples-f-freebase-and-dgml.aspx</link><pubDate>Sat, 06 Mar 2010 21:37:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9974205</guid><dc:creator>Jomo Fisher MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/jomo_fisher/rsscomments.aspx?WeblogPostID=9974205</wfw:commentRss><comments>http://blogs.msdn.com/b/jomo_fisher/archive/2010/03/06/neat-samples-f-freebase-and-dgml.aspx#comments</comments><description>&lt;p&gt;Jomo Fisher – I recently posted about the freebase web service &lt;a href="http://blogs.msdn.com/jomo_fisher/archive/2010/03/06/neat-sample-f-and-freebase.aspx"&gt;here&lt;/a&gt;. This sample reads biological classifications and renders them in DGML. The result is a huge graph, here’s a little piece of it:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/jomo_fisher/WindowsLiveWriter/NeatSamplesFFreebaseandDGML_BF92/animals_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="animals" border="0" alt="animals" src="http://blogs.msdn.com/blogfiles/jomo_fisher/WindowsLiveWriter/NeatSamplesFFreebaseandDGML_BF92/animals_thumb_1.png" width="553" height="311" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;   &lt;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:e1471be7-8008-4f6c-a0fd-281220d676d3" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px"&gt;Code Snippet&lt;/div&gt; &lt;div style="background: #ddd; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#008000"&gt;// FreebaseDgml.fsx &lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#008000"&gt;// Example of reading from freebase.com in F# using DataContract and JSON serializer and write the result&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#008000"&gt;// in .dgml format.&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#008000"&gt;// by Jomo Fisher &lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;#r&lt;/span&gt; &lt;span style="color:#800000"&gt;&amp;quot;System.Runtime.Serialization&amp;quot;&lt;/span&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;#r&lt;/span&gt; &lt;span style="color:#800000"&gt;&amp;quot;System.ServiceModel.Web&amp;quot;&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;#r&lt;/span&gt; &lt;span style="color:#800000"&gt;&amp;quot;System.Web&amp;quot;&lt;/span&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;#r&lt;/span&gt; &lt;span style="color:#800000"&gt;&amp;quot;System.Xml&amp;quot;&lt;/span&gt; &lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;open&lt;/span&gt; System &lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;open&lt;/span&gt; System.IO &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;open&lt;/span&gt; System.Net &lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;open&lt;/span&gt; System.Text &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;open&lt;/span&gt; System.Web &lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;open&lt;/span&gt; System.Collections.Generic&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;open&lt;/span&gt; System.Security.Authentication &lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;open&lt;/span&gt; System.Runtime.Serialization &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;  &lt;/li&gt; &lt;li&gt;[&amp;lt;DataContract&amp;gt;] &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;type&lt;/span&gt; Result&amp;lt;&amp;#39;TResult&amp;gt; = { &lt;/li&gt; &lt;li&gt;    [&amp;lt;field: DataMember(Name=&lt;span style="color:#800000"&gt;&amp;quot;code&amp;quot;&lt;/span&gt;) &amp;gt;] &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    Code:string &lt;/li&gt; &lt;li&gt;    [&amp;lt;field: DataMember(Name=&lt;span style="color:#800000"&gt;&amp;quot;result&amp;quot;&lt;/span&gt;) &amp;gt;] &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    Result:&amp;#39;TResult &lt;/li&gt; &lt;li&gt;    [&amp;lt;field: DataMember(Name=&lt;span style="color:#800000"&gt;&amp;quot;message&amp;quot;&lt;/span&gt;) &amp;gt;] &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    Message:string &lt;/li&gt; &lt;li&gt;    } &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;[&amp;lt;DataContract&amp;gt;] &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;type&lt;/span&gt; Classification = { &lt;/li&gt; &lt;li&gt;    [&amp;lt;field: DataMember(Name=&lt;span style="color:#800000"&gt;&amp;quot;name&amp;quot;&lt;/span&gt;) &amp;gt;] &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    Name:string &lt;/li&gt; &lt;li&gt;    [&amp;lt;field: DataMember(Name=&lt;span style="color:#800000"&gt;&amp;quot;higher_classification&amp;quot;&lt;/span&gt;) &amp;gt;] &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    HigherClassification:string &lt;/li&gt; &lt;li&gt;    [&amp;lt;field: DataMember(Name=&lt;span style="color:#800000"&gt;&amp;quot;lower_classifications&amp;quot;&lt;/span&gt;) &amp;gt;] &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    LowerClassifications:string array&lt;/li&gt; &lt;li&gt;    } &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;  &lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;let&lt;/span&gt; Query&amp;lt;&amp;#39;T&amp;gt;(query:string) : &amp;#39;T = &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; query = query.Replace(&lt;span style="color:#800000"&gt;&amp;quot;&amp;#39;&amp;quot;&lt;/span&gt;,&lt;span style="color:#800000"&gt;&amp;quot;&amp;#92;&amp;quot;&amp;quot;&lt;/span&gt;) &lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; queryUrl = sprintf &lt;span style="color:#800000"&gt;&amp;quot;http://api.freebase.com/api/service/mqlread?query=%s&amp;quot;&lt;/span&gt; &lt;span style="color:#800000"&gt;&amp;quot;{&amp;#92;&amp;quot;query&amp;#92;&amp;quot;:&amp;quot;&lt;/span&gt;+query+&lt;span style="color:#800000"&gt;&amp;quot;}&amp;quot;&lt;/span&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;  &lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; request : HttpWebRequest = &lt;span style="color:#0000ff"&gt;downcast&lt;/span&gt; WebRequest.Create(queryUrl) &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    request.Method &amp;lt;- &lt;span style="color:#800000"&gt;&amp;quot;GET&amp;quot;&lt;/span&gt; &lt;/li&gt; &lt;li&gt;    request.ContentType &amp;lt;- &lt;span style="color:#800000"&gt;&amp;quot;application/x-www-form-urlencoded&amp;quot;&lt;/span&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;  &lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; response = request.GetResponse() &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;  &lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; result = &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;try&lt;/span&gt; &lt;/li&gt; &lt;li&gt;            &lt;span style="color:#0000ff"&gt;use&lt;/span&gt; reader = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; StreamReader(response.GetResponseStream()) &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            reader.ReadToEnd(); &lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;finally&lt;/span&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            response.Close() &lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; data = Encoding.Unicode.GetBytes(result); &lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; stream = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; MemoryStream() &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    stream.Write(data, 0, data.Length); &lt;/li&gt; &lt;li&gt;    stream.Position &amp;lt;- 0L &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;     &lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; ser = Json.DataContractJsonSerializer(typeof&amp;lt;Result&amp;lt;&amp;#39;T&amp;gt;&amp;gt;) &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; result = ser.ReadObject(stream) :?&amp;gt; Result&amp;lt;&amp;#39;T&amp;gt; &lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;if&lt;/span&gt; result.Code&amp;lt;&amp;gt;&lt;span style="color:#800000"&gt;&amp;quot;/api/status/ok&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff"&gt;then&lt;/span&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        raise (InvalidOperationException(result.Message)) &lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;else&lt;/span&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        result.Result &lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;let&lt;/span&gt; classifications = Query&amp;lt;Classification array&amp;gt;(&lt;span style="color:#800000"&gt;&amp;quot;[{&amp;#39;type&amp;#39;:&amp;#39;/biology/organism_classification&amp;#39;,&amp;#39;name&amp;#39;:null,&amp;#39;higher_classification&amp;#39;:null,&amp;#39;lower_classifications&amp;#39;:[]}]&amp;quot;&lt;/span&gt;) &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;let&lt;/span&gt; sb = StringBuilder()&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;  &lt;/li&gt; &lt;li&gt;sb.Append(&lt;span style="color:#800000"&gt;&amp;quot;&amp;lt;DirectedGraph xmlns=&amp;#39;http://schemas.microsoft.com/vs/2009/dgml&amp;#39;&amp;gt;&amp;#92;n&amp;quot;&lt;/span&gt;) |&amp;gt; ignore&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;sb.Append(&lt;span style="color:#800000"&gt;&amp;quot; &amp;lt;Links&amp;gt;&amp;#92;n&amp;quot;&lt;/span&gt;) |&amp;gt; ignore&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;for&lt;/span&gt; classification &lt;span style="color:#0000ff"&gt;in&lt;/span&gt; classifications &lt;span style="color:#0000ff"&gt;do&lt;/span&gt; &lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;if&lt;/span&gt; classification.LowerClassifications&amp;lt;&amp;gt;&lt;span style="color:#0000ff"&gt;null&lt;/span&gt; &lt;span style="color:#0000ff"&gt;then&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#0000ff"&gt;for&lt;/span&gt; lower &lt;span style="color:#0000ff"&gt;in&lt;/span&gt; classification.LowerClassifications &lt;span style="color:#0000ff"&gt;do&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            sb.AppendFormat(&lt;span style="color:#800000"&gt;&amp;quot;  &amp;lt;Link Source=&amp;#92;&amp;quot;{0}&amp;#92;&amp;quot; Target=&amp;#92;&amp;quot;{1}&amp;#92;&amp;quot;/&amp;gt;&amp;#92;n&amp;quot;&lt;/span&gt;,classification.Name,lower) |&amp;gt; ignore&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;sb.Append(&lt;span style="color:#800000"&gt;&amp;quot; &amp;lt;/Links&amp;gt;&amp;#92;n&amp;quot;&lt;/span&gt;) |&amp;gt; ignore&lt;/li&gt; &lt;li&gt;sb.Append(&lt;span style="color:#800000"&gt;&amp;quot;&amp;lt;/DirectedGraph&amp;gt;&amp;#92;n&amp;quot;&lt;/span&gt;) |&amp;gt; ignore&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;printfn &lt;span style="color:#800000"&gt;&amp;quot;%s&amp;quot;&lt;/span&gt; (sb.ToString()) &lt;span style="color:#008000"&gt;// Paste the results of this into a .dgml file.           &lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;span style="mso-ansi-language: en; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri" lang="EN"&gt;&lt;font color="#000000"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;T&lt;span style="color: black"&gt;his posting is provided &amp;quot;AS IS&amp;quot; with no warranties, and confers no rights.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt; &lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9974205" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/F_2300_/">F#</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/JSON/">JSON</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/Freebase/">Freebase</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/Neat+Samples/">Neat Samples</category></item><item><title>Neat Sample: F# and Bing API</title><link>http://blogs.msdn.com/b/jomo_fisher/archive/2010/03/06/neat-sample-f-and-bing-api.aspx</link><pubDate>Sat, 06 Mar 2010 20:32:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9974177</guid><dc:creator>Jomo Fisher MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/jomo_fisher/rsscomments.aspx?WeblogPostID=9974177</wfw:commentRss><comments>http://blogs.msdn.com/b/jomo_fisher/archive/2010/03/06/neat-sample-f-and-bing-api.aspx#comments</comments><description>&lt;p&gt;Jomo Fisher – I recently posted an &lt;a href="http://blogs.msdn.com/jomo_fisher/archive/2010/03/06/neat-sample-f-and-freebase.aspx"&gt;sample of calling the Freebase web service with F#.&lt;/a&gt; Here’s another F# web service sample. This one uses the Bing Phone API to do a query. This time the code uses Xml instead of JSON and XmlDocument instead of a DataContract deserializer. This is pretty much a straight transliteration of one of the Bing SDK samples.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;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:d5a126f2-c1ac-4458-8035-cb508db70ef7" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px"&gt;Code Snippet&lt;/div&gt; &lt;div style="background: #ddd; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0 0 0 3em; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#008000"&gt;// BingPhone.fsx&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#008000"&gt;// An example of using the a Bing web service API from F#&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#008000"&gt;// by Jomo Fisher&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;open&lt;/span&gt; System.Net&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;open&lt;/span&gt; System.Xml&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;let&lt;/span&gt; appId = &lt;span style="color:#800000"&gt;&amp;quot;your app id goes here&amp;quot;&lt;/span&gt;;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;let&lt;/span&gt; BuildRequest() : HttpWebRequest  = &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; requestString = &lt;/li&gt; &lt;li&gt;        &lt;span style="color:#800000"&gt;&amp;quot;http://api.bing.net/xml.aspx?&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;            &lt;span style="color:#008000"&gt;// Common request fields (required)&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            + &lt;span style="color:#800000"&gt;&amp;quot;AppId=&amp;quot;&lt;/span&gt; + appId&lt;/li&gt; &lt;li&gt;            + &lt;span style="color:#800000"&gt;&amp;quot;&amp;amp;Query=microsoft offices&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            + &lt;span style="color:#800000"&gt;&amp;quot;&amp;amp;Sources=Phonebook&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            &lt;span style="color:#008000"&gt;// Common request fields (optional)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            + &lt;span style="color:#800000"&gt;&amp;quot;&amp;amp;Version=2.0&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            + &lt;span style="color:#800000"&gt;&amp;quot;&amp;amp;Market=en-us&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            + &lt;span style="color:#800000"&gt;&amp;quot;&amp;amp;UILanguage=en&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            + &lt;span style="color:#800000"&gt;&amp;quot;&amp;amp;Latitude=47.603450&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            + &lt;span style="color:#800000"&gt;&amp;quot;&amp;amp;Longitude=-122.329696&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            + &lt;span style="color:#800000"&gt;&amp;quot;&amp;amp;Radius=10.0&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            &lt;span style="color:#008000"&gt;// Phonebook-specific request fields (optional)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            + &lt;span style="color:#800000"&gt;&amp;quot;&amp;amp;Phonebook.Count=10&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            + &lt;span style="color:#800000"&gt;&amp;quot;&amp;amp;Phonebook.Offset=0&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            + &lt;span style="color:#800000"&gt;&amp;quot;&amp;amp;Phonebook.FileType=YP&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            + &lt;span style="color:#800000"&gt;&amp;quot;&amp;amp;Phonebook.SortBy=Distance&amp;quot;&lt;/span&gt;;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#008000"&gt;// Create and initialize the request.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;downcast&lt;/span&gt; HttpWebRequest.Create(requestString)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;let&lt;/span&gt; DisplayErrors(errors:XmlNodeList) = &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#008000"&gt;// Iterate over the list of errors and display error details.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    printfn &lt;span style="color:#800000"&gt;&amp;quot;Errors:&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;for&lt;/span&gt; error &lt;span style="color:#0000ff"&gt;in&lt;/span&gt; errors &lt;span style="color:#0000ff"&gt;do&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;for&lt;/span&gt; detail &lt;span style="color:#0000ff"&gt;in&lt;/span&gt; error.ChildNodes &lt;span style="color:#0000ff"&gt;do&lt;/span&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            printfn &lt;span style="color:#800000"&gt;&amp;quot;%s: %s&amp;quot;&lt;/span&gt; detail.Name detail.InnerText&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;let&lt;/span&gt; DisplayResults( root:XmlNode, nsmgr:XmlNamespaceManager) = &lt;/li&gt; &lt;li&gt;    &lt;span style="color:#008000"&gt;// Add the Phonebook SourceType namespace to the namespace manager.&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    nsmgr.AddNamespace(&lt;span style="color:#800000"&gt;&amp;quot;pho&amp;quot;&lt;/span&gt;, &lt;span style="color:#800000"&gt;&amp;quot;http://schemas.microsoft.com/LiveSearch/2008/04/XML/phonebook&amp;quot;&lt;/span&gt;)&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; phonebook = root.SelectSingleNode(&lt;span style="color:#800000"&gt;&amp;quot;./pho:Phonebook&amp;quot;&lt;/span&gt;, nsmgr)&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; results = phonebook.SelectNodes(&lt;span style="color:#800000"&gt;&amp;quot;./pho:Results/pho:PhonebookResult&amp;quot;&lt;/span&gt;,nsmgr)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; version = root.SelectSingleNode(&lt;span style="color:#800000"&gt;&amp;quot;./@Version&amp;quot;&lt;/span&gt;, nsmgr).InnerText&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; searchTerms = root.SelectSingleNode(&lt;span style="color:#800000"&gt;&amp;quot;./api:Query/api:SearchTerms&amp;quot;&lt;/span&gt;,nsmgr).InnerText&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; _,offset = System.Int32.TryParse(phonebook.SelectSingleNode(&lt;span style="color:#800000"&gt;&amp;quot;./pho:Offset&amp;quot;&lt;/span&gt;, nsmgr).InnerText)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; _,total =  System.Int32.TryParse(phonebook.SelectSingleNode(&lt;span style="color:#800000"&gt;&amp;quot;./pho:Total&amp;quot;&lt;/span&gt;, nsmgr).InnerText)&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#008000"&gt;// Display the results header.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    printfn &lt;span style="color:#800000"&gt;&amp;quot;Bing API Version %s&amp;quot;&lt;/span&gt; version&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    printfn &lt;span style="color:#800000"&gt;&amp;quot;Phonebook results for %s&amp;quot;&lt;/span&gt; searchTerms&lt;/li&gt; &lt;li&gt;    printfn &lt;span style="color:#800000"&gt;&amp;quot;Displaying %d to %d of %d results&amp;quot;&lt;/span&gt; (offset + 1) (offset + results.Count) total&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#008000"&gt;// Display the Phonebook results.&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; builder = System.Text.StringBuilder();&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;for&lt;/span&gt; result &lt;span style="color:#0000ff"&gt;in&lt;/span&gt; results &lt;span style="color:#0000ff"&gt;do&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        builder.Length &amp;lt;- 0&lt;/li&gt; &lt;li&gt;        builder&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            .AppendLine(result.SelectSingleNode(&lt;span style="color:#800000"&gt;&amp;quot;./pho:Business&amp;quot;&lt;/span&gt;, nsmgr).InnerText)&lt;/li&gt; &lt;li&gt;            .AppendLine(result.SelectSingleNode(&lt;span style="color:#800000"&gt;&amp;quot;./pho:Address&amp;quot;&lt;/span&gt;, nsmgr).InnerText)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            .Append(result.SelectSingleNode(&lt;span style="color:#800000"&gt;&amp;quot;./pho:City&amp;quot;&lt;/span&gt;, nsmgr).InnerText)&lt;/li&gt; &lt;li&gt;            .Append(&lt;span style="color:#800000"&gt;&amp;quot;, &amp;quot;&lt;/span&gt;)|&amp;gt;ignore&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; stateOrProvince = result.SelectSingleNode(&lt;span style="color:#800000"&gt;&amp;quot;./pho:StateOrProvince&amp;quot;&lt;/span&gt;, nsmgr).InnerText&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        builder&lt;/li&gt; &lt;li&gt;            .AppendLine(stateOrProvince)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            .AppendLine(result.SelectSingleNode(&lt;span style="color:#800000"&gt;&amp;quot;./pho:PhoneNumber&amp;quot;&lt;/span&gt;, nsmgr).InnerText)&lt;/li&gt; &lt;li&gt;            .Append(&lt;span style="color:#800000"&gt;&amp;quot;Average Rating: &amp;quot;&lt;/span&gt;)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;            .AppendLine(result.SelectSingleNode(&lt;span style="color:#800000"&gt;&amp;quot;./pho:UserRating&amp;quot;&lt;/span&gt;, nsmgr).InnerText)|&amp;gt;ignore&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        printfn &lt;span style="color:#800000"&gt;&amp;quot;%s&amp;quot;&lt;/span&gt; (builder.ToString())&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;let&lt;/span&gt; DisplayResponse(response:HttpWebResponse) = &lt;/li&gt; &lt;li&gt;    &lt;span style="color:#008000"&gt;// Load the response into an XmlDocument.&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; document = XmlDocument()&lt;/li&gt; &lt;li&gt;    document.Load(response.GetResponseStream());&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#008000"&gt;// Add the default namespace to the namespace manager.&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; nsmgr = XmlNamespaceManager(document.NameTable);&lt;/li&gt; &lt;li&gt;    nsmgr.AddNamespace(&lt;span style="color:#800000"&gt;&amp;quot;api&amp;quot;&lt;/span&gt;,&lt;span style="color:#800000"&gt;&amp;quot;http://schemas.microsoft.com/LiveSearch/2008/04/XML/element&amp;quot;&lt;/span&gt;);&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; errors = document.DocumentElement.SelectNodes(&lt;span style="color:#800000"&gt;&amp;quot;./api:Errors/api:Error&amp;quot;&lt;/span&gt;, nsmgr)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff"&gt;if&lt;/span&gt; errors.Count &amp;gt; 0 &lt;span style="color:#0000ff"&gt;then&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#008000"&gt;// There are errors in the response. Display error details.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        DisplayErrors(errors);&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;else&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#008000"&gt;// There were no errors in the response. Display the&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;        &lt;span style="color:#008000"&gt;// Phonebook results.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        DisplayResults(document.DocumentElement, nsmgr);&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;let&lt;/span&gt; request = BuildRequest()&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;try&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#008000"&gt;// Send the request; display the response.&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#0000ff"&gt;let&lt;/span&gt; response = request.GetResponse()&lt;/li&gt; &lt;li&gt;    DisplayResponse(&lt;span style="color:#0000ff"&gt;downcast&lt;/span&gt; response)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;with&lt;/span&gt; ex &lt;span style="color:#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#008000"&gt;// An exception occurred while accessing the network.&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    printfn &lt;span style="color:#800000"&gt;&amp;quot;%s&amp;quot;&lt;/span&gt; ex.Message&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-ansi-language: en" lang="EN"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-ansi-language: en" lang="EN"&gt;As before, let me know if there are other F# samples you’d like to see.&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt; &lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;/span&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="mso-ansi-language: en; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri" lang="EN"&gt;&lt;font color="#000000"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;T&lt;span style="color: black"&gt;his posting is provided &amp;quot;AS IS&amp;quot; with no warranties, and confers no rights.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt; &lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9974177" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/F_2300_/">F#</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/Neat+Samples/">Neat Samples</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/Xml/">Xml</category><category domain="http://blogs.msdn.com/b/jomo_fisher/archive/tags/Bing/">Bing</category></item></channel></rss>