Friday, March 26, 2010 12:47 PM
F# Discoveries This Week 03/26/2010
A ton of new posts this week, far too many to enumerate. My “Favorite New F# Blogger of the Week” (seems like this is becoming a trend) is the mysterious Neil of Techneilogy. I’ve been enjoying his honest exploration of F# and semantic networks very much.
Also, I’ve been hanging around in the ##fsharp channel on irc.freenode.net a bit. There’s a bunch of great people there, some of whom are already using F# at work and are eager to talk about it. Check it out if you have the inclination.
We now have all the pieces in place, but creating an AI-bot for a program not meant to be extended will be tricky. StarCraft Bot 9K has the following architecture, which follows the footsteps of the Java ProxyBot available on the AIIDE Website.
Who better to lecture on the topic than Don? This three part series will serve as an introduction to F#, including insights into the rationale behind the history and creation of Microsoft’s newest language.
I have a bunch of spread trades open. Spread trades are trades where you buy something and you sell something else generally in the same amount. You hope to profit from the widening of the spread between the price of the two instruments.
Chris told me one area they are interested in extending is the F# integration into #Develop; particularly they’d like to get the auto-completion working. So if you’re a CS student on the lookout for a summer job, you could end up being paid by Google to work on F#!
I’ll in London on the 10th/11th May giving a two day course entitle “Beginning F# Workshop” in conjunction with the lovely folks at Skills Matter.
General overview of metaprogramming, with a range of examples in different languages ranging from C macros through Java reflection to MetaOCaml. Brief summary of the F# language, its history, features, and upcoming release in VS 2010.
I wrote this little applet to see what the combination of MEF and the F# CodeDom would look like, and for the record it looks really really good. This combination opens a whole lot of doors. By using the F# CodeDom the plugin source code can brought in from anywhere;
This is part of a series on technical analysis indicators in F#, based on the multi-language TA-Lib.
WARNING!!! If you are going to pass through the Python challenge then stop reading this post, cause it contains solution to 24 level.
Last time we stopped on “immutable deque” stage. Today we will explore a few additions that can endow deque with super (hmm..human/deque?) powers.
Recursion is an extremly useful tool in the toolbox of every developer. Many problems have recursive nature and thus best solved with recursion. Tree-like stucture is a very nice candidate for demonstration.
Not so long ago I was working of small F# script (excellent feature BTW) that performs some data processing and displays summary (using WPF)at the end. All the WPF samples I met in the web utilize object model to create UI, but let's make a confession: making relatively complex UI with object model sucks.
Erlang style message passing is a great way of simplifying concurrency. The open source Retlang library aims to bring some of the benefits to .Net languages like C# and VB.Net. Whereas F# has built-in message passing support with the MailboxProcessor also referred to as Agents.
Before I move on, let me post a re-do of the the original lazy-evaluated style tiny expert system, incorporating all I've learned about F# over the last couple of weeks.
Continuing on the path of using classic A.I. tutorial examples to teach myself F#, here is an example using semantic networks. So I created a system in which basic semantic nodes and links can be reified into object instances.
This one returns a list in the right order, and the example shows how to detect circularities. It's a little tricky; the tail recursion involves both a direct tail recursion and a continuation that results in a tail call. I had to run tests to convince myself it really wasn't eating up the stack, lol.
Last week I was down in London and spoke at DevWeek 2010. As usual, it was a great conference! Thanks to everybody who attended my talks!
Calculating Pi is generally the hello world of Monte Carlo Method in Stochastic Calculus. So for today, I will try to give a sample calculation of pi as monte carlo in F#.
A Forward Euler integrator and a wrapper for it which implements a Barnes-Hut tree code. I’ve blogged about this before. It’s an Octree implementation in F# which uses the asynchronous computations feature to scale across multiple cores.
Which, thanks to Luke over on the F# Visual Studio team, means I can do this: […] Which now means I can stop hand crafting FpML types in my F# cashflow code.
If you had the chance to start playing with F#, here are some nice challenges for you. If not you may want to look at from where to start.
Daniel Mohl’s Code Kata and Project Euler - Problems One and Two,
Recently, I've been thinking about the concept of Code Kata and the personal improvement that this type of practice can bring. I started thinking of types of exercises that I could do to utilize this concept. After looking around on the web, I landed on projecteuler.net and found that the problems listed seemed to fit my agenda perfectly.