If you want to learn a functional language, Lisp is a good choice. It has been around a long, time, so it is stable and well supported, and it is also the basis for many other languages. Haskell, while also an excellent language, is more niche.<p>Deciding whether to learn a language or learn how to write a compiler is more difficult. If you are struggling with the Dragon book, have you condidered &quot;Modern Compiler Implementation in ML&quot;? Although ML is even more niche than Haskell, it is a functional language and the book takes you step-by-step through the process of writing a compiler for (a subset of) it.