高階関数クイズ

# let twice f x = f (f x)

これは f という関数と値 x をもらって、f を二回 x に適用する関数です。
さて、では、

# twice twice twice twice add1 0 

は何が帰って来ると思いますか?

http://d.hatena.ne.jp/camlspotter/20100710/1278752186

・twiceはチャーチ数での2と同じ。
・チャーチ数xにチャーチ数yを適用すると y^x になる。
よって、問題の答えは、2^(2^(2^2))の計算結果と同じになる、と思う。