Well this has blossomed a bit. So then, functional programming in Ruby...
The short answer is you can do a lot of it, but in ways it works against the language itself in terms of optimizations. TCO was one of the bigger hits there (though it _is_ a compile flag if you want it.)
As far as how to learn, honestly I'd spend more time in Javascript. Unlike Haskell and some of the others you're almost certain to be using Javascript with Ruby projects and it has a bit less of a ramp up as well. Noted that I know a handful of Haskell, Elixir, and Scala and I do enjoy them but on all practical terms Javascript will suit more developers even being less pure.
I'm going to say something quite controversial: Javascript is good enough to learn Functional Programming ideas.
One of the more interesting ideas to look into there would be Ramda, and this article was amazing at explaining some of it: Thinking in Ramda: Getting Started
Also take a look into:
* Functional Javascript: Functional JavaScript [Book]
* FP in JS: Functional Programming in JavaScript
* Dr Boolean's Guide: https://drboolean.gitbooks.io/mostly-adequate-guide/content/ch1.html
Note though that Ruby has a Ramda implementation as well, and considering they all return Procs which respond to === you can have some real fun with case statements and making query languages. See that Triple Equals Black Magic post above.
Likely I'll do a piece on Ramda for Ruby a bit later, the current focus is on an absolute beginner's illustrated guide to Ruby.
As far as Monads though, they're not as bad as a lot of people make them out to be. It's basically just a container with some extra state tacked onto the end of it for things you can't cleanly reduc.... er... recurse over with an array or straight value. Railway Oriented Programming was an interesting read that will cleanly illustrate a good deal of this:
* Railway Oriented Programming: Railway Oriented Programming | F# for fun and profit
* Monads in Pictures: Functors, Applicatives, And Monads In Pictures - adit.io
Oh, and if you've caught on to my little secret in some of these reducing enumerable posts, shh. 
- baweaver
···
Get Outlook for iOS<Bing;
________________________________
From: ruby-talk <ruby-talk-bounces@ruby-lang.org> on behalf of Hassan Schroeder <hassan.schroeder@gmail.com>
Sent: Thursday, November 2, 2017 7:56:58 AM
To: Ruby users
Subject: Re: Reducing Enumerable (and writing again)
On Thu, Nov 2, 2017 at 1:34 AM, Andy Jones <Andy.Jones@jameshall.co.uk> wrote:
* Elixir, briefly, and I should probably find the time to go back. At first glance it looks Just. Like. Ruby. But I've heard people say that after a while you get to see that everything is far more deeply functional, and actually it's nothing like. ("Oh my god, it's full of monads"?)
Nah, no monads to fear. And it really *is* functional, not OO, so
working with it a while will certainly influence your thinking and
your Ruby coding.
For interesting alternatives, try Clojure or kinda-Haskell-y Idris
(https://www.idris-lang.org/\)
I'm mostly working with Elixir right now, so feel free to ask anything
about it off-list, or jump into the Elixir Slack 
--
Hassan Schroeder ------------------------ hassan.schroeder@gmail.com
twitter: @hassan
Consulting Availability : Silicon Valley or remote