引数(_1)に1を足した値を返す関数などと言ってみる。ない人向けになんとなく。6この程度なら、今でも十分可能だし実際よく使うのです。面倒になるのがちょいと残念ですが。ように外の変数をimmutableなものとして取り込むのは余裕でできるので許してください的な。OK:第一引数にxを足す関数を返す↑これは可能。実は色々あるんですけど、まあ、こんな感じ。馬鹿らしいかもしれない。いう選択肢は捨てた物じゃないと思うのですよ。その後は言語に備わってる機能と思ってみんなが普通に使えるわけで。Monadが変数への代入を実現すれば、後はみんなそれを使えばいい。言われることがありますが、それは全然違うよ、と思うのです。Javaの人にも似たことを言われるんだけどこれも同じ。コンパイラすら見あたらないし自分で書こうとしてもうまくいかないし。除いても、ちょっと表現力の面で捨てる物が多すぎる。なんとかなってしまう。表現力のある言語が出てくるまでは手放せないかなあ、と。追記うーん、読み返してみると自分の書いたことに違和感が。それは「使える道具を一つ増やすため」でしかない、んだよね。移行せいというのは、それは、違う。...と言いたかったらしい。言いたいわけではなくて。その点が重要ならHaskellを使うべき。欲しいな、という感じ。理解できずに挫折した経験があります。ないか、と再挑戦開始。思い浮かべてしまうイメージが理解の邪魔をしていた気がする。パーサジェネレータ/パーサ定義言語。yaccみたいなやつ。プリプロセッサとか全然関係ない。少なくとも一旦そう考えた方が理解がずっと簡単になる気がする。拡張した言語で記述する。コードを実行していろいろできる。方が良いっぽい(?)。拡張OCamlを作れる。作ってやればプリプロセッサとして使える。「Quatation」。Expander」からなる。コード片がQuatationとして埋め込めて楽だったりする。なんとなくわかった気がします。Camlp4で書かれたコードは読めるようになりました。一度読み直してみると......最初っからそう説明してあるなあ。これを訳すべきか訳さざるべきか、それが問題なのです。なんとなく負けのような気がするし、でも、下手な日本語に変換してしまうのは無粋だし。