>>315
Javaは・・・オラクルのせいであんまりお勧めじゃ無くなった。
文法的にもC#に2周くらい遅れちゃったままだし。

Haskellは数学追求だけでなく、型から考える癖が付くから教育面でもお勧め。
コンパイル通ったら、ほぼバグが無いとさえ言われるくらい型を意識するから。
関数の検索もHoogleで関数名が分からなくてもこんな型の関数は無いかな?と、型を書くだけで検索出来る。
数学同様、レベルに合わせて抽象度を上げられる。

普通の言語のトレンドであるオブジェクト指向プログラミングも関数型言語と同じ宣言的プログラミングを目指すものだが、
関数(やメソッドにすべき処理)は無数(無限)に存在する。
なので、いくらクラスやメソッドが増えても基本が宣言的じゃない手続き型言語では完全な宣言的プログラミングは不可能。

自作の小さい関数から宣言的な純粋関数型言語のHaskellなら、完全な宣言的プログラミングが可能。
まあ、その統一感と美しさに惚れてHaskell一筋になったんだけどね。