In “What Is Functional Programming?” I spotted a nice example of how duplication in tests leads to a suggestion to improve the design. Let’s start with his example function getCurrentProgram(). public Program getCurrentProgram(TVGuide guide, int channel) { Schedule schedule = guide.getSchedule(channel); Program current = schedule.programAt(new Date()); return current; } As Kris Jenkins points out in his article, this function has a hardwired (difficult to change) implicit (unspoken) dep...