In a functional programming language, function calls do not have side-effects. In other words, there are no global variables, and a function cannot change the value of variables in the calling scope. A function's only inputs are its arguments, and a function's only output is its result value.
Most programmers are more familiar with imperative programming. BASIC, Pascal, C, C++, Java, Perl, Python, and Tcl are all imperative programming languages (and there are many more).
There are several aspects of Vesta SDL which may be confusing to people used to imperative programming languages:
See the "Gotchas" page for more on these and other things that may cause confusion.
Vesta SDL has a few features which make it seem to be imperative in some ways. Specifically:
The current implementation uses eager evalution. The main performance optimizations it uses are: