2

puppet宣言型モデルを楽しんでいます。これをもっとコードに組み込んでみたいと思います。

ただし、現在は python でプログラミングしていますが、そうしている間は命令的に考える傾向があります。これは、グラフィック デザインの問題と同じです。最終製品に何を見たいかはわかっていますが、それを組み立てる方法がわかりません。

コードが宣言型になるように構造化するにはどうすればよいですか? ソリューションが認識可能な「宣言型」である場合、最初にどのような手順を実行しますか?

Functional, Declarative, and Imperative Programming これを読んだところ、少し洞察が得られました。

十分ではありませんが、正確に言葉にすることはできません。私の混乱:(

編集:言葉が来ました:宣言のために与えられた例は、常に他の高レベルのものに関して与えられています:

Regexen は確かに宣言的ですが、C からエンジンを作成します。

Make は確かに宣言的ですが、C で書かれています。

Puppet のメインフェストはもちろん宣言型ですが、Ruby コードはそうではありません。

では、どの時点で「OK、メソッドはここにあります。これで宣言部分を開始できます」と言うでしょうか?

4

1 に答える 1

2

関数型言語の場合は関数型、命令型言語の場合は命令型、宣言型言語の場合は宣言型で記述します。

上記のように (許可されているすべての「クロス スタイル」を除く)、ある言語で書くときは、その言語のスタイルで書きます。「命令型」または「関数型」言語で「宣言的に」書く場合、これは通常、公開するために使用される基本的なスタイルを実際に変更することなく (または接着することさえ)、宣言的な DSL および/または API を作成することになります。 DSL/API。

たとえば、make(または のような任意の数の XML 言語ant) は、単なる宣言型 DSL です (あいまいさがあります)。ホスト言語は重要ではありません。これは、ほぼすべてのチューリング完全ホスト言語に一般化できます。

于 2010-12-12T04:59:18.967 に答える