Выбирайте Haskell.
Аргументация очень простая: java и компашка — языки императивные и как правило в них все основано на изменении состояния программы, отсюда лишние сложности в программировании и обучении этим языкам. Haskell наоборот, функциональный и как правило лишен этих недостатков. Более того в Haskell функции являются чистыми математическими функциями и проще говоря, многие формулы будут 1 в 1 переводиться на этом языке.
Есть еще вариант, взять язык из семейства ML языков.