宣言的プログラミング

Prologなんか思い出しながら考えていたことだけども、宣言的プログラミングの利用シーンとして、Antとかあっちのほうはかなり使えるかもしれない?
なにかをビルドしたりデプロイしたり、というのは規則や事実(依存関係や、配置されているべき状態も事実かな)に基づいているわけで、そう考えるといわゆるゴールは、つまり配置後の状態で、そのゴールを満たすための試行を選んでくれればいいわけだ。なんかもっとわけわからん考え方をすると、バックトラックなんかも、ビルド再試行とかバラエティとして使えるかもしれない。たとえばある目的の集合の一部である .classを作成する、というサブゴールのためにいくつかの手段が取りうる場合、処理系がバックトラックして違う手段を取ればいいわけで。
ファイルの配置ひとつとっても "ftpで配置できます" "rcpでもできます" "いざとなったら手作業です" という事実?規則?を定義してやれば、パスを自動で試行してくれるわけで。

なんかよくわからんこと書いてるけど、これ結構面白いんじゃないかなあ(笑)

あったりして。Prolog-Makefileみたいな。