5 ms·
What do you want to do? If you can only learn one "functional" language and you do anything with the web, I'd recommend Javascript (if you don't already know i
by viscanti 15y ago
What do you want to do? If you can only learn one "functional" language and you do anything with the web, I'd recommend Javascript (if you don't already know it). It's viable in the front and backends.
I'd personally recommend Haskell. It's going to stretch your brain (in a good way), and helps reinforce all the "functional" concepts. It's one of the very few purely functional languages, and it does have a bit of a learning curve to get started with, but I think it's worth the work. There's a lot of library support, and almost all the sample code you find online in tutorials is well written. You can pretty much do whatever you'd like with Haskell (Web servers like Yesod, to all kinds of fun AI/ML stuff). If you're into computer science theory, you'll find as much as you'd ever want with Haskell. The GHC (compiler) has particularly good support for concurrency and parallelism (likely in most cases as good or better performance than Erlang).
If you're a quant looking into building a trading algorithm OCaml is a good choice.
- big_data 15y agoMy short term ambition is to really learn the paradigm in order to become a better programmer overall. Where it will lead long term, it's hard to say at the moment.
- viscanti 15y agoThen learn Haskell. It's the most academic functional language and there's constantly new papers written pushing the frontiers of computer science. It's also one of the most pure functional languages, so if you can grok Haskell you'll "get" the functional style. Some notes for learning Haskell. Start with 'Learn You a Haskell for Great Good' (http://learnyouahaskell.com/chapters http://learnyouahaskell.com/chapters). Then move on to 'Real World Haskell'. Then 'Write Yourself a Scheme in 48 Hours'. Eventually you'll learn about Monads. They aren't as hard as most people claim. They're very abstract, and require you to think differently about things. There are plenty of great monad tutorials out there. Read one every night before you go to sleep. One day you'll wake up and it will all make sense. The key for learning your first functional language is to forget everything you know about programming, and embrace the fact that you're starting from scratch. Otherwise "Returns" and using recursion instead of loops might trip you up. It's not "Hard", it's just different. If you're prepared, it's not a difficult journey, and you'll be a better programmer for it.
- big_data 15y agoAwesome advice, I thank you!