5

質問

述べたように、宣言型プログラミング言語を理解/理解/理解するのに役立つヒントはありますか?

それとも、言語とその構文に没頭しなければならないという単純なケースですか? 何日も部屋に閉じこもって、主題に関するさまざまな本を 6 冊も読んでいるわけにはいかないので、これは実際には選択肢ではありません (責任はそれらが何であるかであり、すべてです)。

では、宣言型言語に取り組むときに役立ったヒントやコツ、伝えるべき洞察はありますか?

PS 私は個人的に「<em>黙って仕事に取り掛かる」という最初の回答に賛成票を投じます。

バックグラウンド

私が最初に wring コードを始めたのは 13 歳のときです (基本、姉妹のOric-1 で)。

それ以来、私は多くの新しい概念と多くの異なる言語に取り組んできました。オブジェクト指向?気にしないでください。イベント駆動パラダイム?キッパーを吸って、朝食に戻ります。

フクロウ、Mfc、ActiveX、Vb3、4、5 & 6、VB.Net、パスカル、デルファイ、C、C++ & C#。少なくとも長い間、私の邪魔をした人はいません。

しかし、最近、私の満点は少し打撃を受けました。

数週間前、私は Xaml に身を投じました。皆さん、私は水泳よりも沈み込んでいます。

私の主な問題は、それが宣言的であることだと思います。私の他のプログラミングスキルはすべて手続き型です。私は MSBuild でこのブロックにぶつかったことがあります。

Xaml に戻ると、現在、トリガーをプロパティに配線して、必要な効果を得ようとして気が狂っています。

特定の Xaml に関する質問をすぐにここに投稿するかもしれません。今のところ、私はこの一般的な「宣言型プログラミング」の質問をしています。

PS いいえ、私は実際にはそれほど生意気ではありません。はい、初めて OO を実行したときと、初めてイベント ドリブン UI (Windows 3.11 の VB3) を作成したとき、私は地獄のようにつまずきました。

編集

それは沈み始めています、この分野で私をここまで導いた粘り強さが報われています。ただ、フラッキングに時間がかかります!

. . . 私はこのようなものには年を取りすぎていると思います。. . :)

4

9 に答える 9

3

私は世紀の初めに XSL (またはお好みで XSLT) をたくさん教えなければなりませんでした :)、それは本当に別世界です。ただし、これがパラダイム シフトの基礎です。宣言型言語は実際には異なることを認識する必要があります。私が持っている最も重要なアドバイスは、他の人の解決策を研究し続け、仕事に取り組み、FLOW で考えるのを本当にやめようとすることです. 最悪なのは、XSL には「if」と「else」がありますが、通常は別の方法があります。

OO の学習とは異なり、XSL (または宣言型言語だと思います) では、宣言的に実行しない限り、やろうとしていることを実行することはできません。

したがって、答えの一部は、あなたが示唆するように「黙って仕事をする」ことですが、より重要な点は、多くの仕事がパラダイムシフトに頭を悩ませていることを認識することです. したがって、本当の答えは、「パラダイム シフトに注意を払う」ことです。流れで考えるのをやめて、どんな順序でも実行できるルールの観点から考え始める必要があります...それらが正しく行われていれば、いつ実行されるかは問題ではありません。物事がいつ起こるかではなく、最終的にルールを考えているとき、あなたはシフトを理解し始めています.

于 2009-05-18T16:28:32.810 に答える
1

これがあなたの心を吹き飛ばしているかもしれない場所を見ることができます。あなたがリストするすべての言語は、実際には非常に似ています(手続き型)。

これを理解したら、関数型言語も学習することを強くお勧めします。難しいと感じるかもしれませんが、それを学ぶことで、一般的なコーディング スキルが大幅に向上します。(手続き型言語であっても) まったく新しいトリックの袋を手に入れることができ、再帰を恐れることはもうありません。

于 2009-05-18T14:13:29.790 に答える
1

あなたのお気に入りの「プログラマーの無知」について考えてみてください。最初のコード スニペットは明らかに手続き型です。2 番目のスニペットでは、パーセンテージが有効であるためには 0 から 100 の間でなければならないという宣言ステートメントを作成します。

ですから、宣言型プログラミング言語を十分に理解している限り、問題なく理解できると思います...幾何学に王道はありません

于 2009-05-18T14:04:14.193 に答える
1

「プログラミングとは、コンピューターに一連の命令を与えることです。」

ほとんどのプログラマーは、このステートメントに冷静に反応します。それはほとんど…「え?」のようなものです。

しかし、この声明に対する信念が、人々が他のプログラミング パラダイムを理解するのに苦労する原因となっています。それ真実ではなく、長い間そうではありませんでした。プログラミングをよりよく理解するために、多くの人は、このステートメントが誤りである理由を考えることから利益を得られるかもしれません。

純粋なアセンブリでプログラミングしたとしても、最新のプロセッサは命令を再配置し、分岐予測を実行し、潜在的に相互依存する複数の命令を同時に実行しようとします。このように、シーケンスではなく、論理的な依存関係の観点から考えます。シーケンスの比喩は、命令がその前にあるすべてのものに論理的に依存しているという誤った概念です。これが本当なら、プログラムについて推論する最善の方法は、制御フローを調べることです。しかし、それは真実ではありません。

この比喩に当てはまらないのは宣言型プログラミングだけではなく、並列プログラミングや非同期プログラミングも同様です。

于 2012-10-03T04:55:28.227 に答える
0

私は大学で授業を受けました(プログラミング言語)。レンガの壁に何度も頭をぶつけているように感じましたが、クラスの約3/4で、壁がもうないことに気づきました。私は数週間、何にも頭を悩ませていました。かなりシュールな感じでした。

これほどの魅力は他にはないと思います。ゲーデル、エッシャー、バッハを読んでください。エマーソン、レイク、パーマー、カイホスル・​​ソラブジをたくさん聴いてください。ガンジャを吸って、時間を置きます。

于 2009-05-18T13:56:14.817 に答える
0

言語を「理解」する最も簡単な方法は、すべてのコーディングにその言語を排他的に使い始めることです。まったく新しい言語の場合、学習曲線は、1 日 4 ~ 5 時間のコーディングで約 2 週間かかると思います。その後、突然「カチッ」と音がして、マニュアルやドキュメントへの依存を減らすことができます。

于 2009-05-18T13:41:05.580 に答える