|tl;dr how do I approach learning a functional language for real-world development where I can get my hands dirty quickly without much setup and can work without a heavy IDE to facilitate development? What language do you recommend?|
Having read several older articles (https://news.ycombinator.com/item?id=2413816) and blog posts (http://japgolly.blogspot.com/2014/06/a-year-of-functional-programming.html), I've become more interested in attempting to learn - and I mean really learn - a functional language.
I'm having to learn Scala for work, but I don't really care for how much setup I have to go through to get a project going. Maybe I'm doing things the wrong way, but first-time setup of sbt (downloading all of the jars) and frameworks like Play irritate me simply because I want to get up and running quickly. Managing dependencies and working with what feels like embedded Maven syntax does not exactly excite me, mostly because I am not too familiar with Maven itself.
I'm trying to avoid losing interest, which typically comes about from uninteresting "Hello World" examples and annoying toolchain setup (usually around JVM-based languages). I have seen some really amazing work done through the JVM, but I always see developers using either a) Eclipse or b) IntelliJ as their work environment to manage all of the project-related material.
Which leads me to my last bit of background... I'm a terminal vim guy. I really enjoyed using it when I was introduced to it in academia and continued to use it ever since. Because of this, I found myself using a more terminal-oriented environment: XMonad as my window manager, rxvt as my terminal, vim plugins like Ctrlp for quick navigation between material, etc.
I've seen a lot of smart people on this site and am hoping to poke you for advice. I'd love to be able to use what I learn at work and also pass on what I learn to others.