関数型で全てを書くのはきついので、
オブジェクト指向+関数型言語が現実的

全体の構造部分にオブジェクト指向を使い
メソッド内の処理の部分に艦型言語を使う。