FOIL es un algoritmo usado en informática en el campo de la inteligencia artificial y más concretamente en el campo de la programación lógica inductiva (ILP) para aprender reglas de la lógica de primer orden que describan un predicado a partir de un conocimiento base y de un conjunto de ejemplos, denominado conjunto de entrenamiento, donde puede haber tanto ejemplos positivos como negativos.