関数型言語について質問です。

配列aについて、処理X、Y、Zを順番に実行したい場合、

(あ)
a = Z( Y ( X ( a ) ) )

と書くのがいいのか、
(い)
a = X ( a )
a = Y ( a )
a = Z ( a )

と書くのと、どちらが関数型言語っぽい(?)のでしょうか。

(い)の場合は変数の書き換えが3回発生しているので副作用が起きやすい、といえるのでしょうか?でも、順番に処理するのであれば、(あ)よりも(い)のほうが読みやすいと思います。