タグ付けされた質問 「paradigms」

コンピュータプログラミングの基本的なスタイル。

6
関数型プログラミング言語を採用すべきですか?
私は最近、自分のコードを書く方法についてもっと心配しています。デザインパターンに関するいくつかの本を読んだ後(そしてそれらの熱狂的な実装については、きっと)、私は自分の考えを、変化するものをカプセル化することに大きくシフトさせました。インターフェースが少なく、メソッド指向のコードが多く書かれていることに気づきがちですが、述語、アクション、その他のデリゲートタスクを使用して古いクラスに活気を与えたいと思っています。変化するのは行動だと思うことが多いので、それをカプセル化します。常にではありませんが、多くの場合、インターフェイスを単一のメソッドに分解し、クライアントコードに新しいクラスを作成させるのではなく、タスクにデリゲートを使用することを好みます。 だから私はそれが私を襲ったと思います。代わりに関数型プログラミングを行うべきですか? 編集: 関数型プログラミングについて誤解している可能性があります。 現在選択している言語はC#で、C ++の出身です。私はゲーム開発者として働いていますが、現在は失業しています。 私は建築に対する情熱を持っています。私の利点は、クリーンで柔軟性があり、再利用可能で保守可能なコードです。私がこれらの方法で毒されているのか、それともより良いのかわかりません。リファクタリング熱がありますか、それとも次に進むべきですか?これは「仕事に適したツールを使用する」という疑問かもしれませんが、ご意見をお聞かせください。 関数型言語を選ぶべきでしょうか?私の恐怖要因の1つは、Visual Studioの快適さを離れることです。

3
型ベースの不変条件に対する関数型プログラミングの答えは何ですか?
不変条件の概念が複数のプログラミングパラダイムに存在することを知っています。たとえば、ループ不変式は、オブジェクト指向プログラミング、関数型プログラミング、手続き型プログラミングに関連しています。 ただし、OOPにある非常に便利な種類の1つは、特定のタイプのデータの不変条件です。これをタイトルで「型ベースの不変条件」と呼んでいます。たとえば、Fractionタイプが持つかもしれないnumeratorし、denominatorそのGCDは常に1であることを不変で、(すなわち画分が減少した形です)。これを保証できるのは、そのタイプを何らかのカプセル化して、データを自由に設定できないようにすることだけです。その見返りに、削減されているかどうかを確認する必要がないので、等価性チェックなどのアルゴリズムを簡略化できます。 一方、Fractionカプセル化によってこの保証を提供せずに単純に型を宣言した場合、将来、他の誰かがやって来て方法を追加する可能性があるため、分数が減ると仮定してこの型の関数を安全に書くことはできません非還元分数を取得する方法。 一般に、この種の不変条件がないと、次のような結果になる可能性があります。 前提条件を複数の場所でチェック/保証する必要があるため、より複雑なアルゴリズム これらの繰り返される事前条件は同じ根本的な知識を表すため、DRY違反(不変条件が真であること) コンパイル時の保証ではなく、実行時の失敗を通じて事前条件を適用する必要がある だから私の質問は、この種の不変条件に対する関数型プログラミングの答えは何かということです。ほぼ同じことを達成するための機能的慣用的な方法はありますか?または、利点をあまり関連性のないものにする関数型プログラミングの側面はありますか?

6
Cで関数型プログラミングを学ぶことができますか?[閉まっている]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 4年前休業。 ここでのコメントディスカッションの結果、Cで関数型プログラミングを学ぶことができるかどうか疑問に思います。
9 c  paradigms 

2
UIプログラミングに適したパラダイム
これは、OOPはGUIプログラミングの正しいパラダイムではないと誰かが述べたOOPテクノロジーの死のコメントから来る、より具体的な質問(または実際には2つですが、それらは関連しています)です。 そことここでコメントを読んで、まだ学ぶべきことがあると感じています。どのプログラミングパラダイムが適切であると見なされ、なぜ他のパラダイムよりも優れているのでしょう(例として、例を示してください)。 タイトルと質問からtk-exampleを削除しました

5
あなたは他の言語パラダイムを学ぶことによってあなたのプログラミングスキルを向上させることができますか?
もしそうなら、問題が別のパラダイム/言語/テクノロジーにある場合でも、新しいパラダイムを学ぶことでプログラミング問題を解決するためのアプローチがどのように変わったのか教えていただけますか? 特定の方法で教えていただければ、X(つまり、JAVA / C#/ C ++)プログラミングスキルは、Y(つまり、Scheme / Prolog / Lisp)を学ぶことによってどのように改善されたのでしょうか。 また、優れたプログラマーになるために最も役立つパラダイムは何ですか? 私の経験は構造化された-OOP、命令的-手続き型であり、ある程度テンプレートメタプログラミングですが、私の目標は別の言語を学ぶことではなく、問題を解決するためのさまざまなアプローチを学ぶことです。 ありがとう!

4
チェスエンジンの記述に使用するパラダイムはどれですか。
チェスゲームエンジンを作成する場合、どのプログラミングパラダイム(OOP、手続き型など)を使用し、なぜそれを選択するのでしょうか。チェスエンジンとは、現在のボードを評価し、コンピューターの次の動きを決定するプログラムの部分を意味します。 チェスエンジンを書くのは楽しいかもしれないと思ったので、質問します。それから、関数型プログラミングを学ぶためのプロジェクトとしてそれを使うことができると思いました。次に、いくつかの問題が機能的パラダイムにあまり適していないことに気付きました。それから、これは良い議論の餌になるかもしれないと私は思いました。

1
関数型リレーショナルプログラミングと関数型プログラミングの違いは何ですか?
このスレッドとリンクされた論文の両方を読んでも、 FRP(関数型リレーショナルプログラミング)が(FP)関数型プログラミングとどのように異なるのか理解できません。 FRPはFPを増強または置き換えますか?FRPをFP言語のライブラリとして実装できますか?

2
アルゴリズムのパラダイムとは何ですか?
私たちは一般に、プログラミングのパラダイムについて、関数型、手続き型、オブジェクト指向、命令型などについて話しますが、アルゴリズムのパラダイムを聞かれたときはどうすればよいですか? たとえば、巡回セールスマン問題、ダイクストラ最短経路アルゴリズム、ユークリッドGCDアルゴリズム、バイナリ検索、クラスカルの最小全域木、ハノイの塔アルゴリズムパラダイムなどです。または、おそらくパラダイムは、これらのアルゴリズムを設計するために使用するデータ構造ですか?

5
C#を使用してOOPに代わるメインストリームプログラミング手法はありますか?
プログラミング言語に関する限り、私はC#が大好きです。それは、.NETフレームワーク(LINQなど)からもたらされるすべての利点です。 私の主な懸念は、私はコードを大量に作り出しているようであり、OOPを使用することで、私のコードが必ずしも管理しにくいと心配しています。 C#と.Netを引き続き使用したいのですが、言語を適用してコード全体を減らし、テキストブックのOOPに比べて管理が容易になる他のアプローチはありますか? 前もって感謝します!
8 c#  paradigms 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.