Friday, February 06, 2009 11:24 AM
Discoveries This Week 02/06/2009
Some interesting gems this week. Revit, Closures and MathTools won the day. However, I do hope you'll take a look at the IL post as well.
In Jeremy’s post he discusses what is initially necessary to get F# and Revit working together. He also provides a sample of a Revit addin written in F#.
Revit is Autodesk’s architecture and design studio. It allows physical engineers to coordinate and play with, design and visualize data while integrating directly with AutoCad. It also provides a .NET 2.0 API. Given F#’s support for units as well as it’s concise and mathy style, it makes sense that it would be an ideal language for engineers.
Before I stumbled upon this site, I had never head of of WikiBooks. That’s why I was incredibly surprised to find that it has the best online general F# reference around. It has extensive sections on functional, immutable and imperative programming with rich examples and references to the math behind the ideas presented. It’s a great site to have at hand for both those learning about the language and those experienced but still needing to occasionally look something small up.
Learning how to program functionally is much more than just learning some new ideas and a new syntax. It comes along with a ton of new jargon, some of which can be quite foreign sounding. I find that it often turns out that the jargon actually represents a very simple idea and that becomes immediately obvious when discussed with a simple example.
As you might have suspected by its name, MathTools is an extensive set of mathematics libraries for F#. It provides, among other things, statistical functions, fast fourier transforms, optimization algorithms, Matlab compatibility and extended mathematical notation. With a little development this combined with VSLab could provide a viable alternative to tools like Matlab while still allowing for collaboration with colleagues.
It’s the responsibility of any serious programmer to know how how his or her tools work all the way down the chain. In this relatively short article (given the topic) everything you would need to write a .NET compiler is distilled. It’s the best reference of it’s kind I’ve seen.