Hi falcon,

this is an excellent question - and a feature that is commonly requested (for my contributions see here and here.)

As far as I understand Fsi emits MSIL into an in-memory assembly and takes care of maintaining state itself - the details are in fsi.fs. I would dearly love to see this functionality deeply integrated into FSharp's language and core library but as it stands it's not even clear that integrating this functionality into an application is legal!

It's also possible that extensions are necessary to the fsharp type system to support this in a robust fashion similar to those in MetaOcaml and Gregory Neverov's Metaphor. But what do I know?

I hope that the reason for the silence from the fsharp team is that they hard at work creating the first (and best) commercial multi-stage programming language which would allow the type-safe dynamic execution that Fsi shows is possible.

I do believe that this functionality could bring about a paradigm-shift in the way scientists and engineers collaborate.

regards,

Danny

By on 10/3/2008 12:46 PM ()

Thanks Danny,

There are some interesting possibilities. Most people trying out F# will necessarily be those of us who are not quite satisfied with our existing environments (Java in my case). As we learn a new language, learning new techniques of development will be an easier sell. That's why the culture of F# can do things the cultures of Java and C# probably couldn't.

Although I don't regularly use various math packages such as Mathematica, Matlab, Maple, I like how programming and interactive problem solving is pretty much the same thing.

I want to be able to sit with a competent domain expert for a few hours and just solve the problem interactively...then go back and do all the software engineering stuff to make it maintainable.

In any case, I am looking forward to F# moving closer to actual release (which will free up the experts to do some more cool things).

By on 10/7/2008 7:11 AM ()
IntelliFactory Offices Copyright (c) 2011-2012 IntelliFactory. All rights reserved.
Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us | Terms of Use | Privacy Policy | Cookie Policy
Built with WebSharper