<?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 : WebSharper, lazy, ML</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/tags/WebSharper/lazy/ML/default.aspx</link><description>Tags: WebSharper, lazy, ML</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>F# Discoveries This Week 05/28/2010</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/28/f-discoveries-this-week-05-28-2010.aspx</link><pubDate>Fri, 28 May 2010 17:24:01 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:20735</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/20735.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=20735</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=20735</wfw:comment><description>&lt;p&gt;Come in and see what’s new in the F# world.&amp;#160; Every week is seems there is ever more content on an increasingly wider variety of topics.&amp;#160; The community is growing at a very fast pace.&amp;#160; Because of this, I’ve decided to change things up a bit with a new format.&amp;#160; I hope you’ll find it enhances your experience in exploring this mountain of fresh F# information.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2 align="center"&gt;News&lt;/h2&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/b/mulambda/archive/2010/05/15/f-on-silverlight-4.aspx"&gt;Silverlight 4 runtime has been released with F# support&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/b/mulambda/archive/2010/05/21/f-powerpack-may-2010-now-for-silverlight.aspx"&gt;The F# PowerPack 2.0.0.0 is out and supports Silverlight 3 and 4&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://www.intellifactory.com/blogs/adam.granicz/2010/5/22/WebSharper-2010-Standard-is-available.article"&gt;WebSharper 2010 1.0 is out and is free for commercial use&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://fsprojectextender.codeplex.com/"&gt;F# Project Extender 0.9.2.1 has been released&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;The &lt;a href="http://www.intellifactory.com/blogs/adam.granicz/2010/3/5/Call-for-Presentations---CUFP-2010.article"&gt;CUFP 2010&lt;/a&gt; and &lt;a href="http://www.intellifactory.com/blogs/adam.granicz/2010/3/5/Call-for-Presentations---ML-2010.article"&gt;ML 2010&lt;/a&gt; Call for Presentations is active&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://www.informationweek.com/news/global-cio/trends/showArticle.jhtml?articleID=219700406&amp;amp;pgno=4#GrangeInsurance"&gt;F# is on InformationWeek 500: 20 Great Ideas To Steal&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2 align="center"&gt;Video / Audio&lt;/h2&gt;  &lt;h3&gt;&lt;a href="http://www.infoq.com/interviews/don-syme-fsharp-2_0"&gt;Don Syme Talks with Sadek Drobi About F# 2.0, a First Class Citizen in Visual Studio 2010&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;Don Syme speaks about F# 2.0, its application fields, its integration in Visual Studio 2010 and F# open source Power Pack library. Don also discusses the genesis of F#, the ties with OCaml as well as its specificity. &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.infoq.com/interviews/F-Sharp-Don-Syme"&gt;Don Syme Answering Questions on F#, C#, Haskell and Scala&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;In this interview made by InfoQ’s Sadek Drobi, Don Syme, a Senior Researcher at Microsoft Research, answers questions mostly on F#, but also on functional programming, C# generics, type classes in Haskell, similarities between F# and Scala.&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.infoq.com/presentations/The-State-of-the-Art-on-.NET"&gt;Amanda Laucher and Josh Graham – The state of the Art on .NET&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Amanda Laucher and Josh Graham present at an introductory level some of the most important elements of the .NET ecosystem: F#, M, Boo, NUnit, RhinoMocks, Moq, NHibernate, Castle, Windsor, NVelocity, Guerilla WCF, Azure, MEF. &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.dotnetrocks.com/default.aspx?showNum=560"&gt;.NET Rocks F# Panel Live from NERD Center, Cambridge, MA&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;While on the Road Trip, Carl and Richard recorded this panel discussion with Talbott Crowell, Rick Minerich and Richard Hale Shaw on F# at the Microsoft New England Research and Development Center. The panel makes a very compelling case for adding a functional language to your toolchest. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h2 align="center"&gt;Blogs&lt;/h2&gt;  &lt;h3&gt;&lt;a href="http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!2110.entry"&gt;Brian McNamara’s Proggit Subreddit Graph in F# and DGML&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Dear Proggit: graphs are cool, but I prefer F#, so I graphed the subreddit interconnections with F# and DGML&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://thecodedecanter.wordpress.com/2010/05/24/implementing-map-reduce-in-f-sharp/"&gt;James’ Implementing map-reduce in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Again, F# proves to be a remarkably succinct language to express problems, in this case the built in syntactic sugar for tuples is a godsend!&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://bloggemdano.blogspot.com/2010/05/f-and-standard-aspnet-mvc-2-web.html"&gt;Daniel Mohl’s F# ASP.NET MVC 2 Web Application Template&lt;/a&gt; and     &lt;br /&gt;&lt;a href="http://bloggemdano.blogspot.com/2010/05/creating-f-solution-template-for-visual.html"&gt;Creating an F# Template for Visual Studio 2010&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Tomas Petricek recently provided a great blog post on creating MVC web applications in F#.&amp;#160; I thought it might be nice to also have a template that replicates the functionality of the standard C# ASP.NET MVC 2 Web Application template.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://bloggemdano.blogspot.com/2010/05/simple-inversion-of-control-ioc.html"&gt;Daniel Mohl’s A Simple Inversion of Control (IoC) Container in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In this post I will show how to build a simple Inversion of Control (IoC) container 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://bloggemdano.blogspot.com/2010/05/getting-started-with-websharper.html"&gt;Daniel Mohl’s Getting Started with WebSharper Platform 2010&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;A little while ago a cool new product was brought to my attention that allows client-based web development in F#.&amp;#160; The name of this product is WebSharper Platform 2010.&amp;#160; In this post, I will show a simple example for getting started with WebSharper Platform 2010.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://techneilogy.blogspot.com/2010/05/computation-expressions-with-net-data.html"&gt;Neil Carrier’s Computation Expressions with .NET Data Types&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I’m still working on my proof-of-concept and it’s going well. One thing that’s been on my mind is the desire to use computation expressions in it somewhere. So I’ve been trying to make sure I understood computation expressions well enough to use them to good purpose.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://techneilogy.blogspot.com/2010/05/wow-its-been-while.html"&gt;Neil Carrier’s Active Pattern Activity&lt;/a&gt; and &lt;a href="http://techneilogy.blogspot.com/2010/05/more-active-pattern-activity.html"&gt;More Active Pattern Activity&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I have to say the F# proof of concept is still going a lot better than I had ever hoped. Not only is it easy to port the basic algorithms from C# where applicable, but the kind of straightforward design that “functional-thinking” encourages is making for a better program with much less source code.&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/Exposing-F-Dynamic-Lookup-to-C-WPF-Silverlight.aspx"&gt;Phillip Trelford’s Exposing F# Dynamic Lookup to C#, WPF and Silverlight&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Sometimes dynamic typing can be a pragmatic way of solving a specific problem. For example say you’re a solutions provider with a core product and have a number of clients with bespoke requirements. One client asks for a product rating feature. This can be relatively easily achieved using dynamic properties:&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.trelford.com/blog/post/F-operator-overloads-for-WPF-dependency-properties.aspx"&gt;Phillip Trelford’s F# operator overloads for WPF dependency properties&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Creating WPF elements directly from F# can produce good self-contained code, but at time is a little less readable than the XAML equivalent. Lets consider placing a button bound to a command on a grid at a certain position.&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.simple-talk.com/community/blogs/clivet/archive/2010/05/20/91425.aspx"&gt;Clive Tong’s Towards an F# .NET Reflector add-in&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;When I had the opportunity to spent some time during Red Gate's recent &amp;quot;down tools&amp;quot; week on a project of my choice, the obvious project was an F# add-in for Reflector.&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.simple-talk.com/community/blogs/clivet/archive/2010/05/20/91426.aspx"&gt;Clive Tong’s F# and the rose-tinted reflection&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;We're already seeing increasing use of many cores on client desktops. It is a change that has been long predicted.&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/05/15/technical-analysis-indicators-in-f-metadata-reflection"&gt;Julien Ortin’s Technical analysis indicators in F# – Metadata and Reflection&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In this part, we show how to use reflection to fetch the metadata attributes we have described in the first part of the technical analysis series.&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://stevegilham.blogspot.com/2010/05/f-excessively-lazy-sequences-and.html"&gt;Steve Gilham’s F# - excessively lazy sequences and stateful visitors&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Doing something a little bit complicated here: the functional equivalent of a visitor pattern, where I want to apply a few functions to a long and potentially expensive to traverse sequence of items (so ruling out a series of iterations over the visited nodes)&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://fsharpnews.blogspot.com/2010/05/mini-hash-table.html"&gt;Jon Harrop’s Mini hash table&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Imagine you're stuck on a desert island with only a few keystrokes and you desperately need to create your own rudimentary hash table. What might you do?&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/b/jomo_fisher/archive/2010/05/25/how-to-enumerate-all-wmi-classes.aspx"&gt;Jomo Fisher’s How to Enumerate all WMI Classes&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;This is the F# code you would use to enumerate all WMI classes on your system and show the properties of each. of each. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://ugh.cc/f-short-hand-syntax-for-maps-and-sets/"&gt;Fredrik Holmstrom’s F# short hand syntax for maps and sets&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;I’ve always though it a shame that there is no in language short hand syntax for maps and sets in F#, something like {{foo = 1; bar = 2}} and {#1, 2#} – but having a very flexible language at my disposal I set out to find some way to achieve this, mostly for fun – but maybe someone will find a practical use of it.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h2 align="center"&gt;Community&lt;/h2&gt;  &lt;h3&gt;&lt;a href="http://stackoverflow.com/questions/2905081/scala-versus-f-question-how-do-they-unify-oo-and-fp-paradigms"&gt;From StackOverflow: Scala vs F#, How do they unify OO and FP?&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;What are the key differences between the approaches taken by Scala and F# to unify OO and FP paradigms?&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://stackoverflow.com/questions/2840714/f-static-member-type-constraints"&gt;From StackOverflow: F# Static Member Type Constraints&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I'm trying to define a function, factorize, which uses structural type constraints (requires static members Zero, One, +, and /) similar to Seq.sum so that it can be used with int, long, bigint, etc. I can't seem to get the syntax right, and can't find a lot of resources on the subject. This is what I have, please help.&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/05/28/f-discoveries-this-week-05-28-2010.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+05%2f28%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/28/f-discoveries-this-week-05-28-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/05/28/f-discoveries-this-week-05-28-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+05%2f28%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/28/f-discoveries-this-week-05-28-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/05/28/f-discoveries-this-week-05-28-2010.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/28/f-discoveries-this-week-05-28-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/05/28/f-discoveries-this-week-05-28-2010.aspx&amp;amp;title=F%23+Discoveries+This+Week+05%2f28%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/28/f-discoveries-this-week-05-28-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/05/28/f-discoveries-this-week-05-28-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+05%2f28%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/28/f-discoveries-this-week-05-28-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/05/28/f-discoveries-this-week-05-28-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+05%2f28%2f2010&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/28/f-discoveries-this-week-05-28-2010.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20735" 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/Visual+Studio/default.aspx">Visual Studio</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/lazy/default.aspx">lazy</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/mapreduce/default.aspx">mapreduce</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/wpf/default.aspx">wpf</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/cufp/default.aspx">cufp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/silverlight/default.aspx">silverlight</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/WebSharper/default.aspx">WebSharper</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/metaprogramming/default.aspx">metaprogramming</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/refactor/default.aspx">refactor</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Active+Patterns/default.aspx">Active Patterns</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Computation+Expressions/default.aspx">Computation Expressions</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/IoC/default.aspx">IoC</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/ML/default.aspx">ML</category></item></channel></rss>