Automatic Generalization

Posted by Nick Harrison on Geeks with Blogs See other posts from Geeks with Blogs or by Nick Harrison
Published on Wed, 02 Jun 2010 07:03:59 GMT Indexed on 2010/06/02 13:14 UTC
Read the original article Hit count: 303

Filed under:

I have been interested in functional programming since college. I played around a little with LISP back then, but I have not had an opportunity since then. Now that F# ships standard with VS 2010, I figured now is my chance.

So, I was reading up on it a little over the weekend when I came across a very interesting topic. F# includes a concept called "Automatic Generalization". As I understand it, the compiler will look at your method and analyze how you are using parameters. It will automatically switch to a generic parameter if it is possible based on your usage. Wow!

I am looking forward to playing with this. I have long been an advocate of using the most generic types possible especially when developing library classes. Use the highest level base class that you can get away with. Use an interface instead of a specific implementation. I don't advocate passing object around, but you get the idea.

Tools like resharper, fxCop, and most static code analysis tools provide guidance to help you identify when a more generalized type is possible, but this is the first time I have heard about the compiler taking matters into its own hands.

I like the sound of this. We'll see if it is a good idea or not.

What are your thoughts? Am I missing the mark on what Automatic Generalization does in F#? How would this work in C#? Do you see any problems with this?

© Geeks with Blogs or respective owner