Learning First-Order Definitions of Functions