This problem is taken from here
##Problem
Write a program that solves word-chain puzzles.
There’s a type of puzzle where the challenge is to build a chain of words, starting with one particular word and ending with another. Successive entries in the chain must all be real words, and each can differ from the previous word by just one letter. For example, you can get from "cat" to "dog" using the following chain.
cat cot cog dog
The objective of this kata is to write a program that accepts start and end words and, using words from the dictionary, builds a word chain between them. For added programming fun, return the shortest word chain that solves each puzzle.
##Solution
My solution is inspired by the coursera MOOC Functional Programming Principles in Scala.