[sumup]このプログラムは正常ですが良い実装とスタイルではありません。最悪とまでは言えませんが、ひどいものです。参照はヒープに確保されるので、参照の読み書きはレジスタの読み書きよりもより多く時間を消費します。実装は時間効率が悪いことになります。呼び出されるたびに、2つの参照がヒープに生成されて関数が返るまで放置されています。参照のために割り当てられたメモリはガベージコレクション(GC)によってのみ回収されます。実装は空間効率も悪いことにります。重要なことに、参照を多用するプログラムは論証することがしばしば困難です。関数型プログラミングにおける参照は危険な機能であると、私は考えています。(その他にも多くの制約があります)。多くの場合あなたは迷子になっており、関数型スタイルのプログラミングをまだよく学習していないことになります。