っぽいドキュメントを操作することでした。操作する方法をこれまでいろいろ探してきたわけですが、今はこう断言できます。Toolbox)であると。使ってます」を紹介しようと思います。力が高くないので、「理解を間違っている」とか「もっとこう使うべき」というツッコミ歓迎です。ような木構造のデータをいじろうと思ったとき、まず思いつくのは、根っこから順番に要素をたどりつつ処理していく方法です。この方法は案外と融通が利きません。「いま木全体のどこを処理してるか」という情報を持ち歩くしかないからです。「いま木全体のどこを処理してるか」を意識しながらコードを書くには、かなりの精神力が要求されます。「木のこの部分を何かに変換」とか「木のここを取り出す」とか、そういう個別の処理を組み合わせることで全体の変換処理を書けるのです。挫折しているので断言するほどの自信はない)。木」への関数だと思えます。木構造、および、XML木→XML木な関数たち」から「XMLの木構造、および、XML木→XML木な関数たち」への対応だと思えます。使ってつなげたりできます。木の変換を組み合わせられるようになっています。アローについて詳しくは『関数プログラミングの楽しみ』の第10章を読んでください(言うまでもなくこれは宣伝です)。変換を組み合わせる前にまずは変換処理が一つしかない場合から書いてみます。包み直すという、単純な変換がやりたいとしましょう。構造を変えるのではなく、属性に応じて要素名を書き換えるだけの処理です。まわりのモジュールを読み込みます。Control.Arrowこれから変換処理をアローとして書いていくわけですが、外界とのやり取りにもアローを使います。指定やインデントの有無を設定できるのですが、細かいことはドキュメントを参照してください。こんな感じになります。属性はいらないので消してしまう」です。使って木を再帰的に見るようにしています。条件分岐のためのアローです。いうアローを使います)。そのほかのアローの役割は関数名でわかりますね。こんな具合にアローをつなげて、目的の処理を表すアローを書くわけです。できないものかなと考えますよねふつう。用意されているので、こんなふうに書けます。中に書けばいいわけです。こんなふうに定義すればいいでしょう。class="para">こまけーこたーどーでもいいんだよ。doc</span></div></body></html>こんなふうに変換したいとします。<p>こまけーこたーどーでもいいんだよ。要素)を取り出さなければならないところです。使って割と単純に解けてしまいます。特定の属性の値という条件のままで考えるとちょっと込み入ってしまうので、代わりに要素名がそれぞれ「bulletなんとか」になってると単純化して考えてみます。要素名を属性の値に変換した木を作るアローを作って前段にかませばいいだけなので、こうみなしても後で困ることはありません。木への単なる関数です。あとでアローに持ち上げます。属性を持つ要素の名前を、その属性の値に変換するアローを書いておきましょう。要素として取り出せます。演算子は、前段にあるアローの行先に対して、リストからリストへの関数を適用したアローを返します。くくるというアローになります。したい要素たちを取ってこれないからです。条件にしてこんなふうに書いてみました。