My university had essentially a weird-languages course to blow our minds. Smalltalk (everything is a message to an object, back when C++ was the new hotness), Lisp (everything is a sexpr that you can redefine), Prolog (everything is a clause to search for known axioms).
Later: Lisp again, because of closures and CLOS let you program how method dispatch should work and CLCS let you resume from just before an error. Haskell, because you can lazily consume an infinite structure, and every type contains _|_ because you can't be sure that every function will always return a value. Java, back when the language was poor but the promise was "don't send a query, send code that the backend will run securely" (this was abandoned).