GNU Smalltalk

GNU Smalltalk includes bindings for many free software libraries including SQLite, libSDL, cairo, gettext, and Expat.

It iterates over each member of a list, performing some function on while retaining an aggregate.

Blocks work with many built-in methods: Using an enumeration and a block to square the numbers 1 to 10: The following code defines a class named Person.

By deriving from Magnitude, it automatically defines all comparison methods except one (<).

Of course you can catch only particular exceptions (and their subclasses): It is possible to use the exception object, which is made available to the handler clause, to exit or resume the first block; exiting is the default, but can also be mentioned explicitly: