Cryptic Crossword Solver, explored in functional and logic programming