Сначала Lisp для погружения в ФП, желательно не оригинальный, а какой-нибудь из его диалектов, например, Scheme как, на мой взгляд, наиболее академичный. Потом Haskell для получения практических навыков.
Господам же, рассуждающим о непрактичности Хаскеля, могу посоветовать отказаться от образа мышления "если я что-то не умею, то это сделать нельзя в принципе". Хаскель имеет свое практическое применение в реальной жизни не менее, чем, например, Python. Единственная проблема -- это достаточно высокий порог входа в язык. Высокий для канадского лесоруба, решившего закончить недельные курсы и стать высокооплачиваемым программистом. Что же касается программистов среднего уровня или чуть ниже, то для них Хаскель дает возможность писать быстрые, устойчивые программы, тратя существенно меньше времени, чем на той же Java. Я говорю о реальных программах, а не о задачках с олимпиад о раскладывании монеток по кучкам, о программах в 200+ строк на Хаскеле, что в переводе на С++/Java 2000+ строк.