It is worth noting that this approach of defining things in terms of functions that are 
defined in terms of operations is a completely different paradigm from standard 
machine learning. Whereas machine learning systems typically learn to approximate 
functions relating input variables to output variables, via a process that Judea Pearl has 
likened to curve fitting, programmers typically define their algorithms independently of 
training data, in terms of operations over variables. Needless to say, it has served 
conventional computer programmers well, supporting everything from operating 
systems to web browsers to video games to spreadsheets, and so on and so forth.
The Next Decade in AI-