Haskell, because of lazy evaluation, point-free programming, monads and potentially some new weird abstract stuff to deal with in the future.
Prolog, because logic variables, unification, non-determinism and database side-effects.