On Tue, 12 Nov 2013, Hendrik Boom wrote: > On Tue, Nov 12, 2013 at 10:56:09AM -0600, Lawrence Bottorff wrote: > > I'm your typical newbie who is hand-wringing over what direction to go in > > the general functional programming world. Lisp, Scheme, or Haskell? > > [...] > > > > I understand that Barski is slavishly following the "let's get real stuff > > done" philosophy, but I'm not up to speed with functional yet to even know > > what's going on. Is your "Realm of Racket" better at this? I feel like I'm > > spinning my wheels at this point. . . . > > > > LB > > I should mention that another, quite different approach to functional > programming is the language OCAML. See http://ocaml.org/ for details. > > I program using Scheme and OCAML as high-level languages.
I may be very much wrong, so I cowardly apologise in advance, but I happened to subscribe to certain Haskell related NGs just in time to witness, kind of, interesting exchange there. In short, some incompatibilities were introduced into ghc (AFAIR) and this rendered some (a lot?) of working code uncompilable. I did not follow it to the very end, because at one point I simply lost interest. The tone I remember was "what, they can't update their code to agree with new compiler - too bad, let's drop the ballast and move on". My conclusion was, Haskell was still in the making. So if I decided to use it, I should be prepared to rewrite my code from time to time. And this is exactly the thing I hate - I hate rewriting the code, be it from one language to another "cooler" language or from dialect to dialect or from one program fragment to another. I really appreciate attitude of gcc compiler, which, at least in theory, allows me to compile very old code without a problem [1]. I'm not sure if Ocaml is more like gcc or more like ghc, but I decided to learn it rather than H*. As of Racket vs CL, I think they are very comparable, with CL's one leg stuck in prehistory (the filesystem concept scared the bejesus out of me, almost) and Racket being modern and a bit alien to me, who licked (shyly) Dybvig's book in times of R4RS... But, the docs are great, so I can actually fire up drracket, google for some pointers in the docs and write code in, say, quarter hour or a few. Batteries included, thanks a lot for them :-). So for a beginner, Racket is a very good choice. Ability to use some Scheme introductory material, complete with real R5RS mode (it is fully compatible, isn't it :-) ), is great bonus, because it allows for more choices - I am trying to tutor my sister (already graduated, so English and logic is not a problem), and the choice of first intro book to programming is crucial. SICP have just been toppled down, now I am on the look again :-). (OTOH, I'm not sure if I'd want to write compiler in Racket. Maybe. For a while, I want to use both CL and R* and see what happens.) > By the way, I don't do exclusively pure functional programming. Most > of my code is functional, but I use imperative mechanisms when > apppropriate. I consider that building real systems as pure > functional code is extremism bordering on masochism. Yes. One more reason to rethink using Haskell, I guess... Pure functional looks cool in theory and blogs but in every day get-stuff-done it might be not so cool and pure anymore, at least in my case. Besides, I understand that the need for monads makes it dirty functional. So I play it safe. Of course I don't mean Haskell is bad or wrong choice. It just is not the best choice for every problem, but I guess I will learn it, some time later. [1] I wanted to quickly prove it with some code I downloaded in 1995, but gcc complained about "redefined identifiers" and stuff, so in practice some rewriting is required here, too (yes, I gave it "-ansi" but maybe there is some more options to experiment with, maybe I will). Regards, Tomasz Rola -- ** A C programmer asked whether computer had Buddha's nature. ** ** As the answer, master did "rm -rif" on the programmer's home ** ** directory. And then the C programmer became enlightened... ** ** ** ** Tomasz Rola mailto:tomasz_r...@bigfoot.com ** ____________________ Racket Users list: http://lists.racket-lang.org/users