>>974,976-977
まず、次スレがあるから、真面目な質問ならそっちで聞いてみた方が答える人
が微妙に多いんじゃないか。

string が char list ではなく別の型になっているのは高速化と最適化のため。
文字列とリストはメモリの割当て方がぜんぜん違う。配列とは近いから
char array でも大差ない気もするけど、そこのところはよくわからない。

fold 系とかがなんでないのかは知らん。 ExtLib http://ocaml-lib.sourceforge.net/
で追加されているからそっちを使ってみるのもよし。

無名再帰関数を作ることはできるが、ちょっとトリッキーな関数を定義してや
らないといけない。
http://www.kurims.kyoto-u.ac.jp/~hassei/selfref.pdf
の最後に、 SML でそういう関数を定義しているのが載っているから、これを
書き直せば使える。