Smalltalk is an object-oriented, dynamically typed reflective programming language.

If Statement

In Smalltalk, booleans (True/False) are objects (instances of the abstract Boolean class). Every boolean has the type True or False, and no instance data; it also has the ifTrue: and ifFalse: functions. Those functions take a block of code as input. True overrides the ifTrue: function so that it always runs the code provied as input while ifFalse: does nothing. The same goes for False which overrides these two functions, but in reverse.

What other languages do with special syntax, Smalltalk does as a special case of method dispatching.