Sunday, May 03, 2009 6:58 PM
Discoveries This Week 05/01/2009
A few weeks off left me with renewed vigor. This week we have some very interesting posts on reflective and reactive programming, enhancing F# by adding additional operators, IL analysis via simulation and finally, observations on the productization of F#.
A set of interesting observations from our experience taking F# over the last 18 months or so […] from a relatively mature research project […] into something that’s going to be a part of the next version of visual studio.
I’ve just begun to watch the Lang.NET videos. While I haven’t had a chance to watch them yet, I’ve heard from others in the community that Amanda Laucher, Jason Olson and Tomas Petricek all had fantastic presentations.
Let's take a different approach. I'm going to bring back a piece of functionality i talked about in earlier articles - quotations, and using quotations to determine function signatures.
The most interesting idea from this post was that of stacking discriminated unions to attach meta information to parameters. This meta information then can be used when reflecting to determine the scope of parameter inputs.
Ruby (and in many ways Perl) has a bunch of really succinct, elegant operators that contribute to the satisfaction of using the language. […] Since F# doesn’t implement many of my favorite Ruby operators, we’ll put together some implementations here.
Quite a few useful set operators are defined in this post. Many I feel should be included in the language.
I recently needed to determine which functions were called by some of our F# code. Naively, you can use existing tools like ildasm, to disassemble a .NET DLL and then search the resulting IL source code for references. The obvious problem here though, is that you’re going to include all references whether or not they’re actually called.
I found Ian’s method of using discriminated unions to represent IL very clever. Also, the possibilities in directly using the AbstractIL API seem interesting. I may have to explore this myself.
J-C on Functional Reactive Programming in F# Parts 1, 2 and 3
A functional, reactive program is a program written in a functional language (where side effects are inexistent (sic) or at least limited to a minimum) and producing results that depend on time, in a continuous manner on one hand and on discrete events on the other hand.
I had not heard of Functional Reactive Programming previously. It seems particularly useful for time sensitive domains such as robotics or game AI.
I apologize for the fact that I’ve disabled anonymous comments. Given the amount of spam I was receiving I had no choice. If you would like to leave a comment, or think you might in the future, I encourage you to take the one time step of creating an account.