The other day covered Wouter's languages.
But some of them actually make a great deal of sense. Quite unlike pure evil that is Unlambda - a pure functional language based exclusively on combinators.
Seeing Unlambda brought back bad memories of INTERCAL.
But you can't cover perverse languages without mentioning Befunge. Befunge is particularly evil because the program text can change direction...
I'll round off with this list of esoteric programming languages most of which can't ever hope to rival Unlambda, INTERCAL and Befunge in amount of pure evil unleashed on the world.