We will also discuss features Dylan provides for efficiency and security. Function descriptions have been written to resemble that of the Haskell programming language. The core of Dylan implements objects and functions, but omits many of the features you need to write useful programs. Dylan extends the core with ten required libraries that provide control flow, numbers, and abstract data types. Functions in Dylan are objects that perform actions corresponding to functions, procedures, methods, and messages in other languages.
Methods are functions that contain a typed argument list and a body of code.
Methods are defined with typed formal parameters and can be applied to arguments with either the same class as the defined parameters or to subclasses of the defined parameters. If functions are applied to incorrect argument types, an error is signaled. Note that this type checking is performed at run time even though static analysis is possible. The generic function examines the types of the arguments and chooses the most appropriate method to invoke. If no appropriate method can be found, an error is generated.