When you write a piece of code, you're normally putting the filling into the sandwich; there's a built-in program in your computer that controls the loading and running of the code thst you've written, and there is a whole library of standard pieces of code that you call to perform the low level operations. So thus you provide the sandwich filling.
A program as simple as
print "Hello World"
(and that will work in Perl, Python or PHP amongst others) illustrates this - the operating systen runs it, and the built in function within the language chosen deals with the detail of output.
But there are a few occasions where the mechanism gets a bit more complex - where one of the functions itself calls BACK to your code. Let's say you're sorting, but you don't want to write your own sort algorithm. How will that work? Well - you can call the
sort function but then how do you tell it whether
record a comes before or after
record b? The easiest answer is to pass the name of a function that you've written to answer just such a question into the language's sort routine and have it
callback to your code.
During last week's course, I was describing this mechanism and in order to make it clearer, I wrote my own piece of code to do the sorting ... but then took that out to use Python's own sort routine. I've posted the example up to
our longer Python examples - you can see both the version that uses the callback, and my example of what really happens inside.
Callbacks are used in most programming languages, but not usually all that often. Big uses are sorting, and for even handling on GUIs (Graphic User Interfaces).
(written 2007-08-19 15:23:26)
Associated topics are indexed under
P307 - Perl/Tk [1340] Tk locks up - 100% c.p.u. on a simple program (Tcl, Perl, Python) - (2007-09-09)
[738] (Perl) Callbacks - what are they? - (2006-05-30)
[599] Perl/Tk real time display - (2006-02-10)
[596] The magic of -textvariable - (2006-02-08)
[595] Add a friendly front end with Tk - (2006-02-08)
Y111 - Python - More on Collections and Sequences [1873] List Comprehensions in Python - (2008-11-06)
[1869] Anonymous functions (lambdas) and map in Python - (2008-11-04)
[1304] Last elements in a Perl or Python list - (2007-08-16)
[899] Python - extend v append on a list - (2006-10-20)
[633] Copying a reference, or cloning - (2006-03-05)
[386] What is a callback? - (2005-07-22)
[61] Python is a fabulous language - (2004-09-24)
Some other Articles
Business travel by train in the USATratum TechnologiesSome one line Perl tips and techniquesWhat do people look for on a hotel web site?Callbacks - a more complex code sandwichDates for Easter - 2008 to 2015Good to be homeTroy, up state New YorkPython class rattling aroundRegular expressions made easy - building from components