3 ms·
I learned Haskell and then moved to OCaml and found it to be a much more practical language. Haven’t tried Lisp yet, but it’s quickly moving to the top of my li
by donut2d 8y ago
I learned Haskell and then moved to OCaml and found it to be a much more practical language. Haven’t tried Lisp yet, but it’s quickly moving to the top of my list.
- lomnakkus 8y agoOddly enough it was the opposite for me. I think I might have given up on Haskell if I hadn't learned O'Caml first. It's been 15 or so years, so I'm sort of guessing at this point, but I think the combined cognitive effort of going from typical imperative languages to Haskell and the whole algebraic data types+pattern matching thing might have broken me. I found Haskell much more practical because it makes refactoring truly easy, but I'm very "programmer-centric". I mean 'refactoring' in the strict sense of preserving absolutely all the existing behavior, including side effects. That is extremely difficult if you can have side effects all over the place. (Strictness obviously helps a lot, but it also has downsides.) Btw, given your experience and if you want to try Lisp seriously I'd probably recommend Racket, Typed Racket and their Turnstile experiment(?).
- fiddlerwoaroof 8y agoOr, you could go with Hackett, which is a Haskell-like language implemented in Racket: https://github.com/lexi-lambda/hackett https://github.com/lexi-lambda/hackett
- donut2d 8y agoYou’re right about the advantages of Haskell regarding side-effect strictness and refactoring. That’s a huge win. I think now that I have significant experience with OCaml it’d make going back to Haskell easier for me. That’s probably something I’ll do. But right now I’m finding OCaml has been great for me. I’ll look into Racket and friends. Thanks
- rainygold 8y agoHow do you find OCaml to be a more practical language? Interested in trying it out.
- donut2d 8y agoIt holds less closely to the ideal of being a purely functional language. It gets out of my way and let’s me get things done. But I think I misspoke a bit. A big part of what has made OCaml better for me is that the tooling has been easier for me to jump into as a beginner.