Traditionally, machine learning algorithms such as decision tree learners have employed attribute-value representations. From the early 80's on people have started to explore Prolog as a representation formalism for machine learning, an area which came to be called inductive logic programming (ILP). With hindsight, however, Prolog may not have been the best choice, since it can be argued that types and functions, well known from functional programming, are essential ingredients of the individual-centred representations employed in machine learning. Consequently, a combined functional logic language is a better vehicle for learning with a rich representation. In this talk I will illustrate this by means of the higher-order functional logic programming language \emphEscher. The paper concentrates on giving a leisurely introduction to ILP.