If you use a modern, open-source Unix shell — and by that, I basically mean either bash or zsh — then you really should know this shortcut. Control-R is probably the shell command (or keystroke, to be technical about it) that I use most often, since it lets me search through my command history. Let’s…
It’s always fun to start a new project. I should know; I’ve been a consultant since 1995, and have started hundreds of projects of various shapes and sizes. It’s tempting, when I first meet a new client and come to an agreement, to dive right into the code, and start trying to solve their problems.…
I teach Ruby and Python to a lot of people — in formal courses, and in one-on-one pairing sessions, both online and in person. I’ve found that for many people, the whole notion of functional programming seems strange and difficult, as well as something of a waste of time. After all, if you have objects,…
We’re nearly at the end of my tour of the “reduce” function in Ruby and Python. Just as I showed in the previous installment how we can implement the “map” function using “reduce”, I want to show how we can implement another functional-programming standard, “filter”, using “reduce” as well. As before, I’ll show examples in…
This is another installment in my “reduce” series of posts, aimed at helping programmers understand this function, with examples in both Ruby and Python. So far, we have seen how we can build a number of different types of data structures — integers, strings, arrays, and hashes — using “reduce”. But the really interesting use…
In yesterday’s post, I showed how we can use Python’s “reduce” function to create a dictionary. Ruby, of course, also has dictionaries, but calls them “hashes.” In this posting, I’m going to show how we can create a hash in Ruby when iterating over an enumerable. In so doing, we’ll see how we can use…
In the last few installments (first, second, third, and fourth) of this series, we saw how “reduce” can be used to build up a scalar value (such as a number or string), or even a simple collection, such as a list (in Python) or an array (in Ruby). The jewel in the data-structure crown for…
In the first few parts of this series (first, second, and third), I introduced the “reduce” function, and showed how it can be used in a number of ways. However, in all of the examples we have seen so far, the output from our invocations of “reduce” were integers or strings. If we reduce with…
This is the third installment of my “reduce” series of blog posts. For the first, see here, and for the second, see here. If you have been reading this series, then you know that “reduce” can be used to sum numbers, or to calculate scores. In that sense, “reduce” justifies its name; we’re invoking a…
This is the second installment of my series of blog posts on the “reduce” function/method. For an introduction, see here. I love to play Scrabble — or more commonly nowadays, I play Words with Friends on my phone. (I often say that the game should instead be called, “Words with people who used to be your…