Smalltalk, A Functional Programming Language