Patent ID: 7739676

Claim:
A system for dynamically typing and overloading functions in a programming environment, the system comprising: a computer comprising: a programming environment, the programming environment utilizing: a plurality of functions with a same function name, each of the plurality of functions taking at least one of a different number and type of input arguments, the plurality of functions visible at a first point in a computer program written in a programming language having dynamic types and overloaded functions, the first point being in a first scope of the computer program; a function data structure, the function data structure comprising information referencing the plurality of functions with the same function name, the function data structure created at the first point in the computer program; and an argument list of input arguments for one of the plurality of functions with the same function name, the function data structure applied to the argument list at a second point in the computer program, the application of the function data structure to the argument list including selecting a function from the plurality of functions and calling the selected function to produce a result, the second point being in a second different scope in the computer program, at least one of the plurality of functions with the same name that are visible in the first scope not being visible in the second scope; and a storage, the storage holding the result of the application of the function data structure to the argument list.