common lispの場合

左から順に処理する。
それぞれの関数が副作用があるかもしれない。

というわけで自動でやられると困りそう。

lispよりも関数型でしか書けなさそうな言語の方が良いです。

http://www.mu.dk/cl-muproc