>>694
手続き脳に毒された後だと苦労するかもしれんが、まっさらな新人に教える上じゃJavaより教えることは少なくて済む。

コマンドの入出力からしてデータ、ロジックと外部とのやりとりを切り離すことを強制される(GUIとロジックの切り分けとかしやすいと言うか、強制される)とか、
MVC/MVVMと言われるのをHaskellだと言語レベルで強制されるあたりは不便と言えば不便だが、データと関数を再利用し易い。

手続き型だとコマンドでテキストに行番号を付けて出力する時、テキスト読んで、行毎に出力しながら行番号付ける書き方が主流だが、
Haskellだとテキスト読んで、行に分割して、行番号付けて、それを結合してテキストに戻してから出力を強制される。

逆に言えば、テキスト入れる変数や行番号付ける関数はGUIにもそのままコピペで使えるくらいまで部品化される。
手続き型だとそう言うのは設計次第。