<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.atalasoft.com/cs/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>Rick Minerich's Development Wonderland : FScheme, fsharp</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/tags/FScheme/fsharp/default.aspx</link><description>Tags: FScheme, fsharp</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>F# Discoveries This Week 03/12/2010</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/12/f-discoveries-this-week-03-12-2010.aspx</link><pubDate>Fri, 12 Mar 2010 21:03:07 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:20330</guid><dc:creator>RickM</dc:creator><slash:comments>2</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/20330.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=20330</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=20330</wfw:comment><description>&lt;p&gt;Tons this week.&amp;#160; Vladimir Matveev’s is my favorite new F# blogger with very well written data structure posts, Ashley Feniello continues his fantastic FScheme series, and Jomo Fisher posts some great Freebase and DGML examples.&amp;#160; That’s just the tip of the F# iceberg, do come inside.&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Ashley Feniello’s FScheme Parts &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/03/05/functional-i-o-or-at-least-o.aspx"&gt;Twelve&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/03/09/functional-i-o-including-i-this-time.aspx"&gt;Thirteen&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/03/10/functional-i-o-historical-debugging.aspx"&gt;Fourteen&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The basic idea is to run a simulation by iterating a pure function from world state to world state. We’ll add a new ‘run’ primitive which will expect several user-defined functions to have been set up. The world state is initially produced by an ‘init’ function. Then every 30th of a second a ‘tick’ function is called to produce a new world state from the current state. Finally a ‘draw’ function will be called to render the world.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Luca Bolognese’s &lt;a href="http://lucabolognese.wordpress.com/2010/02/26/downloading-stock-prices-divs-and-splits-in-f-updated-to-visual-studio-2010/"&gt;Updated Stock Prices, Divs and Splits Example&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I’m working on a program to keep track of paired trades with trailing stops. I need to download stock prices, so I thought I might reuse some old code of mine. Here is the updated framework.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;David Carlisle’s &lt;a href="http://www.nag.co.uk/numeric/DT/fsharp/"&gt;NAG F# Examples&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;NAG (Numerical Algorithms Group) is currently running a beta test of a NAG Library for .NET. One noticeable feature of the comments received so far is the relatively large number of users interfacing to the library from F# rather than C# or VB.NET.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Phillip Trelford’s &lt;a href="http://www.trelford.com/blog/post/The-Associative-Model-of-Data.aspx"&gt;The Associative Model of Data&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;But what if you wanted to extend the web store to have features like the online retailer Amazon, e.g. multiple sellers, recommendations, etc.? Answer: serious table and relationship proliferation. Enter an alternative model: the Associative model of data, a dynamic model where data is defined simply as items and links.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Jon Harrop’s &lt;a href="http://fsharpnews.blogspot.com/2010/03/f-vs-unmanaged-c-for-parallel-numerics.html"&gt;F# vs Unmanaged C++ for Parallel Numerics&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;We obtained a surprising performance result when comparing optimized parallel ray tracers written in F# and C++ recently. The following two programs render the same highly complex scenes containing over a million objects. Surprisingly, the 136-line managed F# program runs slightly faster at 17s than the 168-line unmanaged C++ which takes 18s.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Vladimir Matveev’s &lt;a href="http://v2matveev.blogspot.com/2010/03/f-and-iron-python.html"&gt;F# and Iron Pyton&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Today’s post will be devoted to various ways of integration between Iron Python and F#. I’ll try to skip the details of DLR configuration, because this is vast topic that worth separate post (maybe even a few posts). Instead I’ll focus on questions of integration.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Vladimir Matveev’s &lt;a href="http://v2matveev.blogspot.com/2010/03/data-structures-finger-tree-part-1.html"&gt;Data Structures: Finger Tree (Part 1)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;What we’ll try to do in this post is to create the structure (based on 2-3 trees) with following characteristics.&amp;#160; Immutable (modification returns new instance of structure with changes applied),&amp;#160; Enqueue/Dequeue both in start and end in amortized constant time, and Concatenation support.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Vladimir Matveev’s &lt;a href="http://v2matveev.blogspot.com/2010/03/data-structures-2-3-tree.html"&gt;Data Structures: 2-3 Tree&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;There are many special types of trees that perform insert/remove operation in intelligent way ensuring that result tree is small but branchy :). This trees are called self-balanced, most well-known of them are AVL trees, Red-black trees, 2-3 trees. This post is dedicated to the latter ones.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Vladimir Matveev’s &lt;a href="http://v2matveev.blogspot.com/2010/02/overview-of-f-async-module.html"&gt;Overview of F# Async Module&lt;/a&gt; and &lt;a href="http://v2matveev.blogspot.com/2010/02/event-based-async-pattern-in-f.html"&gt;Event-based Async Pattern in F#.&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;This post I’d like to dedicate to reviewing functionality of Async module – creating and manipulating async computations.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Luis Diego Fallas’s &lt;a href="http://langexplr.blogspot.com/2010/03/some-basic-image-processing-operations.html"&gt;Basic Image Processing Operations with F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The previous post presented a way to access the image data from the Webcam using DirectShow.Net and F#. We can manipulate this data to do some basic image processing operations with it.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Jomo Fisher’s &lt;a href="http://blogs.msdn.com/jomo_fisher/archive/2010/03/09/neat-samples-extend-your-f-program-with-mef.aspx"&gt;Extend your F# program with MEF&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/jomo_fisher/archive/2010/03/10/neat-samples-f-in-mef-scripts.aspx"&gt;MEF in F# Scripts&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The Managed Extensibility Framework is an interesting new technology in .NET 4.0.&amp;#160; This is a simple example in F#. This code sets up MEF hosting and asks for all extensions in the c:\extensions folder.&lt;/em&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Jomo Fisher’s &lt;a href="http://blogs.msdn.com/jomo_fisher/archive/2010/03/06/neat-samples-f-freebase-and-dgml.aspx"&gt;Neat Samples: F#, Freebase, DGML&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I recently posted about the freebase web service here. This sample reads biological classifications and renders them in DGML. The result is a huge graph, here’s a little piece of it…&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Jomo Fisher’s &lt;a href="http://blogs.msdn.com/jomo_fisher/archive/2010/03/06/neat-sample-f-and-bing-api.aspx"&gt;Neat Samples: F# and Bing API&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&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;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Jomo Fisher’s &lt;a href="http://blogs.msdn.com/jomo_fisher/archive/2010/03/06/neat-sample-f-and-freebase.aspx"&gt;F# and Freebase&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The web service at Freebase.com lets you access all sorts of structured data from a web service. Here’s a sample that shows you how to access this data from F#. It uses DataContract and the JSON serializer. The code below reads and prints the elements of the periodic table.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Julien Ortin’s BitTorrent in F# series: &lt;a href="http://lepensemoi.free.fr/index.php/2010/03/05/bittorrent-in-f-io-operations"&gt;I/O Operations&lt;/a&gt; and &lt;a href="http://lepensemoi.free.fr/index.php/2010/03/06/bittorrent-in-f-bitfield"&gt;Bitfield&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;One important thing is that a BitTorrent transfer is considered as a stream of pieces. So, if you have a 100-byte file, and a 400-byte one, and if the piece size is 200-byte long, the data from the piece need to be appropriately split (both when reading and when writing).&amp;#160; In this library, we use a reference to the AsyncWorker described on Don Syme’s blog.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;h3&gt;Matt Moloney’s &lt;a href="http://www.mattssoftwareblog.com/?p=227"&gt;Drag and Drop using Rx and WPF in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I have recently been experimenting with combining Reactive X, WPF, and F# and have found the combination to be very palatable. I chose drag and drop as the test case because it is both non trivial and generally deeply stateful. The resulting Rx turns out to be one fifth the code of my original C#, much easier to read and has fewer errors.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Kean Walmsley’s &lt;a href="http://through-the-interface.typepad.com/through_the_interface/2010/03/using-a-jig-from-f-to-create-spirographs-patterns-in-autocad.html"&gt;Using jig from F# to create Spirograph patterns in AutoCAD&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;After my initial fooling around with turning AutoCAD into a Spirograph using F#, I decided to come back to this and bolt a jig on the front to make the act of making these objects more visual and discoverable.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Joh’s &lt;a href="http://sharp-gamedev.blogspot.com/2010/03/thoughts-about-f-and-xbox-games.html"&gt;Thoughts about F# and Xbox games&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I have been working for quite some time now on Asteroid Hunter. This has not left me much time for exploration with F#, but there is quite a bit a learned during the process anyway.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Richard Minerich’s &lt;a href="http://richardminerich.com/2010/03/abstract-thoughts-about-f-abstractions/"&gt;Abstract Thoughts about F# Abstractions&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;My recent work on Professional F# 2.0 has left me thinking a lot about the nature of abstractions.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Oliver Strum’s &lt;a href="http://www.sturmnet.org/blog/2010/03/10/creating-a-lazy-sequence-of-directory-de"&gt;Creating a Lazy Sequence of Directory Descendants&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I thought these code examples all look rather verbose – in the case of Clojure because in that way rather typical for Java, the APIs are pretty verbose to use, and in the case of C# because of all the syntactic, well, ahem, necessities, as well as the fact that there’s no language feature for integrating nested sequences seamlessly. Keeping it nice and simple, in F# that example can look like this…&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Tormod Fjeldskar’s &lt;a href="http://lookingsharp.wordpress.com/2010/03/08/tail-recursion-in-csharp-and-fsharp/"&gt;Tail Recursion in C# and F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Tail recursion is essential in functional languages like F#, where iterative solutions are often implemented using recursion.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/12/f-discoveries-this-week-03-12-2010.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+03%2f12%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/12/f-discoveries-this-week-03-12-2010.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/12/f-discoveries-this-week-03-12-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+03%2f12%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/12/f-discoveries-this-week-03-12-2010.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/12/f-discoveries-this-week-03-12-2010.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/12/f-discoveries-this-week-03-12-2010.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/12/f-discoveries-this-week-03-12-2010.aspx&amp;amp;title=F%23+Discoveries+This+Week+03%2f12%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/12/f-discoveries-this-week-03-12-2010.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/12/f-discoveries-this-week-03-12-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+03%2f12%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/12/f-discoveries-this-week-03-12-2010.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/12/f-discoveries-this-week-03-12-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+03%2f12%2f2010&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/12/f-discoveries-this-week-03-12-2010.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20330" width="1" height="1"&gt;</description><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fsharp/default.aspx">fsharp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/IronPython/default.aspx">IronPython</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/roundup/default.aspx">roundup</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/AutoCad/default.aspx">AutoCad</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/image+processing/default.aspx">image processing</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/data+structures/default.aspx">data structures</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/asynchronous/default.aspx">asynchronous</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/comparison/default.aspx">comparison</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/data/default.aspx">data</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/FScheme/default.aspx">FScheme</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/scheme/default.aspx">scheme</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/DGML/default.aspx">DGML</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Stocks/default.aspx">Stocks</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Freebase/default.aspx">Freebase</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/unmanaged/default.aspx">unmanaged</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/NAG/default.aspx">NAG</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/MEF/default.aspx">MEF</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/xbox/default.aspx">xbox</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Bing/default.aspx">Bing</category></item><item><title>F# Discoveries This Week 02/25/2010</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-2010.aspx</link><pubDate>Thu, 25 Feb 2010 21:31:07 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:20254</guid><dc:creator>RickM</dc:creator><slash:comments>2</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/20254.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=20254</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=20254</wfw:comment><description>&lt;p&gt;Between Atalasoft, Professional F# 2.0 and the MVP Summit I’ve been completely swamped and ended up with quite a backlog of posts.&amp;#160; Between the Brian-Chris F# Code Battle, Luca’s LChart, Ashley’s continuing FScheme series and Matthew’s MongoDB stuff I’m not sure I can pick a favorite.&amp;#160; That’s not true, I’d go right for the DAWG-fight series.&amp;#160; The arcane secrets of F# optimization await inside.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Don-Syme-Introduction-to-F-3-of-3/"&gt;C9 Lectures: Dr. Don Syme - Introduction to F#, 3 of 3&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In Part 3 of this 3-part lecture series, Dr. Don Syme elaborates further on: Patterns, Object Basics, [and] Imperative Programming.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/dsyme/archive/2010/02/15/async-and-parallel-design-patterns-in-f-part-3-agents.aspx"&gt;Dr. Don Syme’s Async and Parallel Design Patterns in F#: Agents&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In part 3 of this series, we explore lightweight, reactive agents in F# and look at some typical design patterns associated with these agents, including isolated internal state.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/chrsmith/archive/2010/02/17/dawg-fight-optimizing-text-search-in-f-ii.aspx"&gt;Chris Smith’s DAWG-fight, Optimizing text search in F# II&lt;/a&gt; and &lt;a href="http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!1803.entry"&gt;Dr. Brian McNamara’s DAWG-Gone&lt;/a&gt; (F# Language Team Code Battle Summary) &lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;So today I’ll walk you through what Chris did right (shortest… subsection… ever!), as well as what he did wrong (get comfy in your chair), and then show my own implementation.&lt;/em&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Luca Bolognese’s LChart: Displaying Charts in F# Parts &lt;a href="http://blogs.msdn.com/lucabol/archive/2010/02/17/lchart-displaying-charts-in-f-part-i.aspx"&gt;One&lt;/a&gt;, &lt;a href="http://lucabolognese.wordpress.com/2010/02/17/lchart-displaying-charts-in-f-part-ii/"&gt;Two&lt;/a&gt; and &lt;a href="http://lucabolognese.wordpress.com/2010/02/19/lchart-displaying-charts-in-f-part-iii/"&gt;Three&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I want to use F# as a exploratory data analysis language (like R). But I don’t know how to get the same nice graphic capabilities. So I decided to create them. Here is a library to draw charts in F#.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Dr. Brian McNamara’s An RSS Dashboard in F# Parts &lt;a href="http://lorgonblog.spaces.live.com/blog/cns!701679AD17B6D310!1780.entry"&gt;Four&lt;/a&gt;, &lt;a href="http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!1790.entry"&gt;Five&lt;/a&gt; and &lt;a href="http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!1802.entry"&gt;Six&lt;/a&gt;.&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;You can see from the colors in the screenshot from part one what I desired, but this requires knowing which links are ‘visited’ and which are not, so I can color each link appropriately.&amp;#160; It turns out, this information can be had via unusual means…&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Ashley Feniello’s FScheme Parts &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/02/11/turning-your-brain-inside-out-with-continuations.aspx"&gt;Ten&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/02/21/playing-dice-with-the-universe.aspx"&gt;Eleven&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;We’re now taking the first small step into the world of nondeterministic logic programming (chapter 16 of Bill Hails’ book). Hopefully you enjoyed the last post about continuation passing and found the idea to be ripe with potential power; indeed so powerful that we’re going to use it now to bifurcate the universe! No really, we are…&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/lucabol/archive/2010/02/12/a-simpler-f-mailboxprocessor.aspx"&gt;Luca Bolognese’s A simpler F# MailboxProcessor&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I always forget the pattern to use to create a functioning MailboxProcessor in F#. I mean, which piece has to be async and how to structure the recursive loop. When I find myself in that kind of a situation situation, my instincts scream at me: “Wrap it and make it work how your mind expects it to work”. So here is a simplification of the paradigm.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://weblogs.asp.net/podwysocki/archive/2010/02/11/the-f-powerpack-released-on-codeplex.aspx"&gt;Matthew Podwysocki’s The F# PowerPack Released on CodePlex&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;As announced yesterday, the new February 2010 release of F# is out. This release is much more of a stabilization release instead of adding a lot of features including improvements in tooling, the project system and so on.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://weblogs.asp.net/podwysocki/archive/2010/02/09/exploring-mongodb-with-f.aspx"&gt;Matthew Podwysocki’s Exploring MongoDB with F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I just want a quick answer with the data I have.&amp;#160; There was one issue of course that nagged me which was the ubiquitous use of strings for everything from databases, collections, and keys.&amp;#160; With a language such as F#, could we do any better than this approach?&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://weblogs.asp.net/podwysocki/archive/2010/02/10/f-and-the-dynamic-lookup-operator-ala-c.aspx"&gt;Matthew Podwysocki’s F# and the Dynamic Lookup Operator ala C#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In the F# language, we have the ability to define two “dynamic” operators, a get member operator denoted by the ( ? ), and the set member operator denoted by the ( ?&amp;lt;- ).&amp;#160; The F# language and its associated libraries do not have an actual implementation of these operators, but instead allow you to implement them as you see fit. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Steve Gilham’s Updating F# posts to 1.9.9.9 Parts &lt;a href="http://stevegilham.blogspot.com/2010/02/updating-f-posts-to-1999-part-1-before.html"&gt;One&lt;/a&gt; and &lt;a href="http://stevegilham.blogspot.com/2010/02/updating-f-posts-to-1999-part-2-october.html"&gt;Two&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Possibly a few more issues will come out as I reconstitute my analysis tool, which is currently undergoing a retooling of its build system to automate some of the manual checks for whether the operational tests succeeded or not.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.navision-blog.de/2010/02/14/fake-f-make-0-29-released-ready-for-f-february-2010-ctp-and-net-4-0-rc/"&gt;Steffen Forkmann’s FAKE – F# Make 0.29 Released&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Last week I released version 0.29 of my build automation tool “FAKE – F# Make”. The new version comes along with a couple of changes which I will now describe.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://langexplr.blogspot.com/2010/02/using-webcam-with-directshownet-and-f.html"&gt;Luis Diego Fallas’s Using a Webcam with DirectShowNET and F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In this post I'm going to show a small F# example of using DirectShowNET to access a webcam and manipulate the image data.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.markhneedham.com/blog/2010/02/15/f-passing-an-argument-to-a-member-constraint/"&gt;Mark Needham’s F#: Passing an argument to a member constraint&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I've written previously about function overloading in F# and my struggles working out how to do it and last week I came across the concept of inline functions and statically resolved parameters as a potential way to solve that problem.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Julien Ortin’s &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/10/bittorrent-bencoded-values-in-f"&gt;BitTorrent Bencoded values&lt;/a&gt; and &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/13/bittorrent-metainfo-file-handling-in-f"&gt;BitTorrent Metainfo file handling&lt;/a&gt; in F#&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Byte strings can be strings represented as byte strings (such as the description of the exchanged data), as well as an array of bytes (such as a hash). Representing them with the .Net strings can thus lead to errors. Hence we shall keep the byte array representation.&lt;/em&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Julien Ortin continues his series on Purely Functional Data Structures with a &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/11/skew-binomial-heap"&gt;Skew binomal heap&lt;/a&gt;, a &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/11/bankers-double-ended-queue"&gt;Banker’s double-ended queue&lt;/a&gt;, a &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/11/alternative-binary-random-access-list"&gt;Alternative binary random access list&lt;/a&gt;, a &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/18/bootstrapped-queue"&gt;Bootstrapped queue&lt;/a&gt;, and a &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/18/implicit-queue"&gt;Implicit queue&lt;/a&gt;.&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;This post describes the F# implementation of the &amp;lt;insert data structure here&amp;gt; from Chris Okasaki’s “Purely functional data structures”.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.scottseely.com/Blog/10-01-13/F_is_Changing_My_Style.aspx"&gt;Scott Seely’s F# is Changing My Style&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The types I’m interested are concrete (no abstract methods) and have a zero-argument constructor. A few years ago, I would have done a bunch of looping constructs to look at each element. However, I’ve been doing a lot more work with F#. While doing this experiment in C# for a project, I wound up writing the following instead:&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://stevegilham.blogspot.com/2010/02/it-almost-feels-like-cheating.html"&gt;Steve Gilham’s It almost feels like cheating…&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Having renamed all the .c files as .cpp, getting a first building assembly was simple, and then making it refer to an initially empty F# library, no problem; and then setting up an (again, initially empty) unit test assembly depending on both (where vice-tests to match up new and old implementations, and their eventual unit test replacements can accumulate), just as normal.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://bradclow.blogspot.com/2010/02/f-examples-talk-at-bfg.html"&gt;Brad Clow’s F# Examples talk at BFG&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Earlier this week I gave a short talk at the Brisbane Functional Group on F#. The idea was to give an introductory feel for the language by way of some simple examples.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.trelford.com/blog/post/F-Talk-at-Edge-UG-Slides-and-Demos.aspx"&gt;Phillip Trelford’s F# Talk at Edge UG: Slides and Demos&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I presented a 1 hour talk introducing F# with 4 demos (attached to this post):&amp;#160; Full-screen WPF POS Checkout sample with Barcode scanner integration (in 100 lines).&amp;#160; Twitter WPF client script (200 lines).&amp;#160; Matermind board game in WPF (300 lines).&amp;#160; Lunar Lander XNA game (&amp;gt;400 lines). &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blog.mwjackson.net/?p=40"&gt;Matt Jackson’s AssertWasCalled in F# (or how I learned to stop worrying and hate extension methods)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Unfortunately, this upcasting led me on a short goose chase to find out which interface in the Rhino Mocks codebase was responsible for AssertWasCalled only to realise that it was an extension method sitting hiding away somewhere else.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-2010.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+02%2f25%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-2010.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+02%2f25%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-2010.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-2010.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-2010.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-2010.aspx&amp;amp;title=F%23+Discoveries+This+Week+02%2f25%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-2010.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+02%2f25%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-2010.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+02%2f25%2f2010&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-2010.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20254" width="1" height="1"&gt;</description><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/optimization/default.aspx">optimization</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fsharp/default.aspx">fsharp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/roundup/default.aspx">roundup</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/powerpack/default.aspx">powerpack</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/async/default.aspx">async</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/data+structures/default.aspx">data structures</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fake/default.aspx">fake</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/FScheme/default.aspx">FScheme</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/scheme/default.aspx">scheme</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/rss/default.aspx">rss</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/DAWG/default.aspx">DAWG</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/LChart/default.aspx">LChart</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Mailboxes/default.aspx">Mailboxes</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/MongoDB/default.aspx">MongoDB</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/charting/default.aspx">charting</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Dynamic+Lookup/default.aspx">Dynamic Lookup</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/parallel/default.aspx">parallel</category></item><item><title>F# Discoveries This Week 01/29/2010</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-2010.aspx</link><pubDate>Fri, 29 Jan 2010 19:15:34 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:20100</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/20100.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=20100</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=20100</wfw:comment><description>&lt;p&gt;Many apologies if I missed your post.&amp;#160; Having skipped last week due to some uncontrollable circumstances left me with quite a large number to sort through.&amp;#160; My personal favorite this week is Ashley Feniello’s series.&amp;#160; SICP eat your heart out.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.simple-talk.com/opinion/geek-of-the-week/don-syme-geek-of-the-week/"&gt;Richard Morris’s Geek of The Week is Don Syme&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“It came as a surprise to many of us when Microsoft pulled from it's hat a rabbit in the form of an exciting, radical, language that offers an effective alternative to the Object-oriented orthodoxy. The creative force behind this language, F#, turns out to be a brilliant Cambridge-based Australian called Don Syme, already well known for his work on generics in .NET.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Ashley Feniello’s extremely cool eight part (so far) series FScheme:&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“One of my New Year’s goals is to re-read Lisp in Small Pieces and implement all 11 interpreters and 2 compilers. As much as I like the &amp;quot;Lisp in Lisp&amp;quot; idea and enjoyed the eureka moment in SICP when Sussman writes the metacircular interpreter on the board to the music from Space Odyssey, I don't want to do Lisp in Lisp itself. Lisp in F# sounds like more fun.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Part 1: &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/01/15/fscheme-0-0-0.aspx"&gt;FScheme - Scheme in F#&lt;/a&gt;    &lt;br /&gt;Part 2: &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/01/15/fscheme-0-0-1.aspx"&gt;Just ‘let’ Me Be Already!&lt;/a&gt;    &lt;br /&gt;Part 3: &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/01/15/fscheme-0-0-2-lambda.aspx"&gt;Lambda the Ultimate!&lt;/a&gt;    &lt;br /&gt;Part 4: &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/01/16/fscheme-0-0-3-letrec.aspx"&gt;Rinse and Recurse&lt;/a&gt;    &lt;br /&gt;Part 5: &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/01/18/fscheme-0-0-4-let.aspx"&gt;What ‘letrec’ Can’t Do&lt;/a&gt;    &lt;br /&gt;Part 6: &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/01/18/fscheme-0-0-5-cons-car-cdr-list-quote.aspx"&gt;What's Lisp Without Lists?!&lt;/a&gt;    &lt;br /&gt;Part 7: &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/01/21/fscheme-0-0-6-macro-quote-unquote-eval.aspx"&gt;No Wait, Macro the Ultimate!&lt;/a&gt;    &lt;br /&gt;Part 8: &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/01/22/fscheme-0-0-7-set-define-begin.aspx"&gt;Oh, The Humanity!&lt;/a&gt;&lt;/p&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Matthew Podwysocki’s Series - Creating Extended Builders &lt;a href="http://weblogs.asp.net/podwysocki/archive/2010/01/18/much-ado-about-monads-creating-extended-builders.aspx"&gt;Part 1&lt;/a&gt;, &lt;a href="http://weblogs.asp.net/podwysocki/archive/2010/01/21/much-ado-about-monads-creating-extended-builders-part-ii.aspx"&gt;Part 2&lt;/a&gt; and &lt;a href="http://weblogs.asp.net/podwysocki/archive/2010/01/25/a-kick-in-the-monads-creating-extended-builders-part-iii.aspx"&gt;Part 3&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;“But, what we lack is an imperative programming model on top to allow for such things as if statements, for and while loops, and try/catch or try/finally blocks.&amp;#160; Luckily, there is a programmatic model to follow to make these things possible inside of our expressions.&amp;#160; Let’s cover each of these functions in turn and see what each one does and in the process implement them for the Reader Monad.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/chrsmith/archive/2010/01/24/being-an-evil-genius-with-f-and-net.aspx"&gt;Chris Smith’s Being an Evil Genius with F# and .NET&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;“Rather than doing the prototypical “Intro to F# Talk” I figured I go with something a bit more fun and relevant to the every day developer. Sure F# is neat and everything – but why bother to learn a new programming language unless you can use it to do something meaningful. Well, in addition excelling at both functional and object-oriented programming, F# is ideal for world domination.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://tomasp.net/blog/accelerator-quotations.aspx"&gt;Tomas Petricek’s Accelerator and F# (IV.): Composing computations with quotations&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“In this part of the series, we're going to look at working with quotations explicitly. We'll use meta-programming techniques to work with Accelerator. Meta-programming means writing programs that manipulate with other programs or pieces of code.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/visualizeparallel/archive/2010/01/19/tuning-a-parallel-ray-tracer-in-f.aspx"&gt;Luke Hoban’s Tuning a Parallel Ray Tracer in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;“One of the samples that is included with the Parallel Programming Samples for .NET 4 is a simple Ray Tracer.&amp;#160; This ray tracer provides a nice visual way of seeing the benefits of .NET 4 parallelism features, as well as giving insights into the way work stealing happens under the hood.” &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Julien Ortin continues his series on Purely Functional Data Structures with a &lt;a href="http://lepensemoi.free.fr/index.php/2010/01/21/scheduled-binomial-heap"&gt;Scheduled binomial heap&lt;/a&gt;, &lt;a href="http://lepensemoi.free.fr/index.php/2010/01/21/scheduled-bottom-up-merge-sort"&gt;Scheduled bottom-up merge sort&lt;/a&gt; and a &lt;a href="http://lepensemoi.free.fr/index.php/2010/01/21/hood-melville-queue"&gt;Hood-Melville queue&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“This post describes the F# implementation of the &amp;lt;insert data structure here&amp;gt; from Chris Okasaki’s “Purely functional data structures”.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://lepensemoi.free.fr/index.php/2010/01/27/rate-meter-in-f"&gt;Julien Ortin’s Rate meter in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“The following code allows us to measure (and keep track of) the exchange rate (whether upload or download), and the time needed to exchange n additional bytes (assuming the rate is stable).”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://lepensemoi.free.fr/index.php/2010/01/27/implementing-two-way-traffic-control-in-f-bucket-approach"&gt;Julien Ortin’s Two-way traffic control in F# – bucket approach&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“The following approach is based on a per-request basis. That is, an actors asks for n tokens to read (or write), and the manager sends it an answer when the actor is allowed perform the action. In effect, if the actor asks for 100 bytes and only 50 bytes can be exchanged per second, it will get a green light only after two seconds have elapsed.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Stasyan continues his Red and Black tree Series with &lt;a href="http://stasyan.wordpress.com/2010/01/06/red-and-black-tree-in-f-insertion/"&gt;Insertion&lt;/a&gt;, &lt;a href="http://stasyan.wordpress.com/2010/01/20/red-and-black-tree-in-f-deletion/"&gt;Deletion&lt;/a&gt;, &lt;a href="http://stasyan.wordpress.com/2010/01/20/red-and-black-tree-in-f-extras/"&gt;Extras&lt;/a&gt; and a &lt;a href="http://stasyan.wordpress.com/2010/01/20/red-and-black-tree-in-f-post-mortem/"&gt;Post-Mortem&lt;/a&gt;. &lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“But it works nevertheless. I did some random testing of 10000 elements. Insertion and deletion worked. The cool thing is that the Black height of the tree with 10000 elements does not exceed 10.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://msmvps.com/blogs/gbarnett/archive/2010/01/17/book-review-f-for-technical-computing.aspx"&gt;Granville Barnett Review’s F# for Technical Computing&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“An F# book by Jon brings with it excitement and promise: his work is well known for being clear and concise, and the examples he uses to help the reader familiarise themselves with the application of F# are highly stimulating.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://sdtimes.com/link/34075"&gt;David Worthington’s WebSharper platform seeks to broaden F# use&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;“Microsoft's F# language is best suited for financial and scientific applications, but a startup wants to broaden its usage to building mainstream Web applications.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.ademiller.com/blogs/tech/2010/01/implementing-a-parallelized-octree-in-f"&gt;Ade Miller’s Implementing a Parallelized Octree in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“What’s an octree? An octree is a tree structure where each node has up to eight children, one for each of the octants. You can think of them as a three dimensional variation on a binary tree.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://www.intellifactory.com/blogs/diego.echeverri/2010/1/25/Data-Visualization-with-Websharper.article"&gt;Diego Echeverri’s Data Visualization with Websharper&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“In this post I'll show you how to make a nice visualization similar to the ones used by Hans Rosling. For this, we'll use the WebSharper Google Visualization bindings available as an extension package to the core platform.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/matt/archive/2010/01/19/regex-lexer-with-f.aspx"&gt;Matt Manela’s Regex based Lexer with F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“This lexer allows you to define your regular expression based rules in a very declarative way using F# computation expressions.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.trelford.com/blog/post/Sorted-with-F-custom-operators.aspx"&gt;Phillip Trelford’s Sorted with F# custom operators&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“F# lets you define your own operators, and like a man with a new hammer hunting for nails :) I’ve found an application of F# custom operators for sorting multiple columns.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://chrisrizzuto.wordpress.com/2010/01/21/http-requests-in-f-using-a-tcpclient/"&gt;Chris Rizzuto’s Http Requests in F# using a TCPClient&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“Obviously a few ways to do this using WebClient, HttpRequests, but in this case I decided to use a TcpClient object as I liked the control, and the ability to easily access the textual outputs.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://chrisrizzuto.wordpress.com/2010/01/22/f-wcf-service-to-calculate-stddev-and-keep-real-time-kpis/"&gt;Chris Rizzuto’s F# WCF Service to calculate StdDev and Keep Real-Time KPIs&lt;/a&gt;, &lt;a href="http://chrisrizzuto.wordpress.com/2010/01/25/f-wcf-kpis_concurrentdictionary-first-class-events/"&gt;F#, WCF, KPIs, ConcurrentDictionary, First Class Events&lt;/a&gt; and &lt;a href="http://chrisrizzuto.wordpress.com/2010/01/28/message-queues-in-f-building-into-the-kpi-service-past-3-posts/"&gt;Message Queues in F# / Building into the KPI Service&lt;/a&gt; &lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“First, below is the functions and events to calculate StdDev.&amp;#160; Thanks again LukeH for doing all the work for this part.&amp;#160; I only made a small change by adding a new method for handling the event when it is raised, and to make Mean and StdDev accessible from a WCF web service so that if polled for the current values, it is able to return them to the user.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blog.ctaggart.com/2010/01/list-transactional-wcf-bindings-in-f.html"&gt;Cameron Taggart’s List Transactional WCF Bindings in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“The code uses LINQ to print a list of WCF binding that have a default constructor and support transactions.&amp;#160; I think it actually is a whole lot more readable in F#”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blog.ctaggart.com/2009/12/hello-world-for-bing-maps-silverlight-f.html"&gt;Cameron Taggart’s Hello World for Bing Maps + Silverlight + F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“The Bing Maps Silverlight Control was released in November.&amp;#160; […]&amp;#160; I’ve committed code for this blog that shows you how to get started with it using an F# Silverlight application.&amp;#160; I did not need to write any C# or XAML.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.scottseely.com/Blog/10-01-13/F_is_Changing_My_Style.aspx"&gt;Scott Seely’s F# is Changing My Style&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“A few years ago, I would have done a bunch of looping constructs to look at each element. However, I’ve been doing a lot more work with F#. While doing this experiment in C# for a project, I wound up writing the following instead:”&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-2010.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+01%2f29%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-2010.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+01%2f29%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-2010.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-2010.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-2010.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-2010.aspx&amp;amp;title=F%23+Discoveries+This+Week+01%2f29%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-2010.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+01%2f29%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-2010.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+01%2f29%2f2010&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-2010.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20100" width="1" height="1"&gt;</description><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fsharp/default.aspx">fsharp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/roundup/default.aspx">roundup</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/quotations/default.aspx">quotations</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/lisp/default.aspx">lisp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/regular+expressions/default.aspx">regular expressions</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/data+structures/default.aspx">data structures</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Accelerator/default.aspx">Accelerator</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/FScheme/default.aspx">FScheme</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/reviews/default.aspx">reviews</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/GeekOfTheWeek/default.aspx">GeekOfTheWeek</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/tuning/default.aspx">tuning</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/trees/default.aspx">trees</category></item></channel></rss>