takano32:すぐに思い当たるところですと Scheme( Wikipedia )の処理系 Gauche 向けに作成された関数型プログラミングのWebフレームワーク
Kahua では関数合成を積極的に利用しています。
たとえば、わかりやすいところでは「プログラミングGauche( Amazon / O'Reilly )」という書籍で以下のような記述とコード例があります。
> 高階タグ手続きは、要素の中身(contents)となるものを引数として受け取り、タグ構造を生成する 手続きを返す手続きです。これを使って、宣言的に
> XML/HTML ページ要素を組み立てることがで きます。
(define (calendar/ date) (table/
(thead/
(tr/ (th/ "←") (th/ (@/ (colspan "5")) (date->string date "~Y年~m月")) (th/ "→")))
(tbody/
(map/ (lambda (w)
(tr/ (map/ td/ w))) (date-slices-of-month date)))))
高階タグ手続を用いると関数型言語の中でファーストクラスである「関数」を用いて宣言的に XML/HTML を記述できます。また DOM
ツリーではなくS式で記述できるため、Schemeが備えているS式を再構成する方法(マクロなど)を使って関数型言語として自然な記述によって加工や処理ができるという点で優れているのではないかと思います。
Kahua
は現在ではあまり使われているシーンを見かけないフレームワークですが、他にも興味深い特徴(継続によるセッション維持なども特徴的)がありますので、ご興味がありましたら学習してみてもよいかもしれません。
https://github.com/kahua/Kahua/blob/master/doc/AboutKahua.ja