It's real easy to try out FSharp on non-Windows though, on Ubuntu do this:
1) Install Mono sudo apt-get install mono mono-gac 2) Install F#: wget http://download.microsoft.com/download/7/5/c/75c5ac35-9c13-4737-b363-3c930002259a/fsharp.zip -Ofsharp.zip;unzip fsharp.zip 3) Start the interactive shell: mono ./FSharp-1.9.6.2/bin/fsi.exe Have fun, /Casper On May 15, 4:39 pm, Dick Wall <[email protected]> wrote: > By way of some damage control (or at least restoring some balance to > the force), I would suggest that anyone reading Robert's article at > least scroll down to Bill Venners response, which points out that some > of the examples in the original article are uglier than they should > be. For example, currying an existing function is actually quite > cleanly achieved by: > > val y = x(1) _ > > With the underscore denoting to the compiler that you meant to leave > out the second argument, give me back a new function that supplies the > first and still needs the second. True, you can't leave it out > altogether, but this is still a lot neater than the version presented > in the article. I think Bill's post addresses most of the concerns in > the article and once again points out that the key here is that Scala > is not a purely functional language, but that it does allow functional > programming style if that is what you wish. > > Cheers > > Dick > > On May 15, 7:29 am, Dick Wall <[email protected]> wrote: > > > Going back to the original argument made by Robert, I believe you mean > > that Scala is not a *purely* functional language, with which I would > > agree. Any language can be somewhat functional, in other words you can > > write in it using a functional style. Even Java, where things like the > > builder pattern enabling immutable instances post construction, and > > Google collections library and Fork Join with their predicates and > > function definitions, can lend a more functional style to your code. > > > Fact is, my style has become more functional since I started using > > Scala, even in Java source. I don't believe I have ever claimed that > > Scala is a purely functional language (soundbyte please, if I did), > > but that it certainly introduces more functional facing features into > > a language should not be in dispute. On the contrary, I am interested > > in Scala because I find it one of the most pragmatic mixin languages > > out there right now - you get static typing that is stronger than even > > Java, but without many of the down sides because of clever type > > inference in the compiler. You get better Object Orientation than > > Java, with concepts like traits and (yes, Joe will argue with me here) > > properties in the language or libraries, and on top of that you get > > better support for immutability and other functional features. > > > I also believe Scala is a great choice for scientists and > > mathematicians. Most of the ones I know still use Fortran, and there's > > not much pure-functional about Fortran. > > > F# is a problem cos I don't do windows. Also, I have mentioned in the > > show before that I have messed with purely functional languages (most > > notably Miranda) in the past and found that their super-strict > > functional style didn't sit well with my own programming approach. > > Scala is the first language that offers this level of functional > > features that I have been comfortable with and really look forward to > > using. Sometimes I use it in a functional way, sometimes I fall back > > into OO where it makes sense - it's my choice and I love having that > > choice. > > > I will take a look at OCaml as well, but that brings me to the other > > huge advantage of Scala - I can re-use all of my skills and experience > > with the Java SE libraries and the wealth of Java frameworks out > > there. Scala even abstracts away many of the rough edges in commonly > > used libraries with simple wrapping techniques, meaning that what I > > end up with is the same libraries I already know, but in many cases > > they are better than the original. Running on the JVM is also a huge > > benefit, as is compatibility with existing Java code bases (which are > > a fact of life for me). > > > Anyway - perhaps the takeaway from this is that Scala isn't a purely > > functional language, but I believe you can be a purely functional > > programmer and still use Scala effectively. Cay Horstmann demonstrates > > some of this with his functional programming class at SJSU where he > > sticks to just the functional parts of Scala (immutable list > > processing, recursion, etc.) and stays away from the OO. > > > Dick > > > On May 15, 6:36 am, Joshua Marinacci <[email protected]> wrote: > > > > I thought a 'functional language' simply meant that they had > > > constructs which enforce true strict functions, meaning subroutine > > > calls which are guaranteed to never have side effects, which take > > > arguments and return a single value, and can be aggressively optimized > > > by the compiler/runtime because they are strict functions. > > > > On May 15, 2009, at 8:27 AM, Gabriel C. wrote: > > > > > About currying, is worth noting that in Haskell, f (x,y) = x + y can't > > > > be curried (and must be called with parenthesis!!!) and Haskell is as > > > > functional as you can be... > > > > (yes, I know, I'm cheating because I'm not defining a function with > > > > two parameters, is a function with one tuple parameter) > > > > The point is that having to define f(x:Int)(y:Int) instead f > > > > (x:Int,y:Int) is not that far from having to define f x y instead of f > > > > (x,y)... > > > > (a little more detail > > > > inhttp://gabrielsw.blogspot.com/2009/02/flavors-of-curry-scala-vs-haske...) > > > > > Regards > > > > > On May 14, 8:35 pm, Robert Fischer <[email protected]> > > > > wrote: > > > >> If Dick is going to keep going on about how functional and > > > >> mathematical Scala is, and how that's so > > > >> great, maybe he should check out OCaml/F#? > > > > >> I've just posted to my blog about how Scala is *not* a functional > > > >> language. Which is not to say > > > >> it's a bad language -- it's just not a functional language. > > > > >>http://enfranchisedmind.com/blog/posts/scala-not-functional/ > > > > >> ~~ Robert Fischer. > > > >> Grails Training http://GroovyMag.com/training > > > >> Smokejumper Consultinghttp://SmokejumperIT.com > > > >> Enfranchised Mind Bloghttp://EnfranchisedMind.com/blog > > > > >> Check out my book, "Grails Persistence with GORM and > > > >> GSQL"!http://www.smokejumperit.com/redirect.html --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/javaposse?hl=en -~----------~----~----~----~------~----~------~--~---
