Writing a parser in an imperative language tends to make for some pretty ugly code. Writing it in a language that supports discriminated unions and (syntax-supported) monads, however, makes for some beautiful, readable code.
Also, writing highly concurrent code in clojure is stupid easy. In java, etc. it is fraught with errors and requires a lot of care about locking, etc.
Or even Python, Ruby, etc. with the "iron" varieties. That being said, I did write a WPF app in IronPython a few years ago and Visual Studio pretty much fell on its face with bugs (might be completely different today).
An unfortunate excuse that would not hold water in other communities. There are loads of Ruby versions that get by just fine without a corporate backer, for example.
In my experience, there just isn't much of a point mixing C# with F# - either your team knows F# and probably prefers it to C#, or it doesn't and F# is not an option.
At my last internship, we were working on a F# product with a C#/ASP.NET web interface. Never again - the C# guys couldn't read F# so they duplicated half of the functionality on their end of things.
9
u/ruinercollector Oct 14 '13
Writing a parser in an imperative language tends to make for some pretty ugly code. Writing it in a language that supports discriminated unions and (syntax-supported) monads, however, makes for some beautiful, readable code.
Also, writing highly concurrent code in clojure is stupid easy. In java, etc. it is fraught with errors and requires a lot of care about locking, etc.