問題タブ [imperative-programming]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
language-agnostic - ステートメントと状態
「ステートメント」という言葉が「状態」という言葉で始まるという事実には、何か深い意味があるのでしょうか、それとも単なる偶然の一致なのでしょうか? 英語は私の母国語ではないので、答えはあなたには明らかかもしれませんが、私にはわかりません ;)
database - 他の誰かが、インスタンス変数がデータベースに裏打ちされたアプリケーションで問題があると思いますか?
C#のような言語での状態制御は十分にサポートされていないことに気づきました。
つまり、メモリ内オブジェクトの状態を管理するのはプログラマーに任されています。一般的なユースケースは、ドメインモデルのインスタンス変数が永続ストレージ(つまりデータベース)に存在する情報のコピーであるというものです。明らかに、これは単一の権限の原則に違反しており、「同期」は開発者が管理する必要があります。
インスタンス変数の代わりに、データベースにリンクする属性でマークされた単純なパブリックアクセス/ミューテーターメソッドがあり、読み取りと書き込みがデータベースにアクセスするかどうかを決定するフレームワークによって仲介されるシステムを想定しています。そのようなシステムは存在しますか?
私は完全に要点を見逃していますか、それともこの考えにいくつかの真実がありますか?
silverlight - 宣言的/命令的クロスオーバー
XML を介してインスタンス化されたクラスへの参照を取得する方法を探していますが、命令型コードで参照する必要があります。通常、これはコントロールのデータ コンテキストを介して行いますが、この場合、ユーザー コントロールには、必要なクラスへの宣言的な参照がありません。
User.Resources または Application.Resources を介してインスタンス化されたクラスへの参照を取得する方法を見てきましたが、適切なキーワードをまとめて例を見つけることができないようです!
R
programming-languages - FPに魅了されているが、それでも不可欠だと思うのですが、どのように機能すると思いますか?
ほとんどのpplと同様に、私は多くの命令型コード(主に、Java、Ruby、Javascript)から始めて、今でも多くの命令型コードを実行しています。
私はOOの大ファンではありませんでした。それは、それを正しく理解していなかったか、OOを考えていなかったためです。
javascript、関数の受け渡し、クロージャなどを介してFPを初めて垣間見ることができました。それ以来、FPが大好きになっています。
最近、私はClojure(そしてScalaかもしれません)に興味を持ち、いつかHaskellに行くかもしれません。私は機能的アプローチで見たものが好きですが、どのように機能的だと思いますか?私は過去3〜4年間、命令型の作業を行ってきました。私の脳は、問題に取り組んでいる間、命令型と考える傾向があります。
どうすれば命令型スタイルを学習せず(必要ですか?)、より機能的に考えることができますか?
haskell - break-s/continue-s を含む命令型制御フローを haskell に変換する
3 桁の数の積の中から最大の回文を見つける次の命令型コードを考えてみましょう (そうです、これは「[18 世紀の傑出した数学者] のプロジェクト」サイトの最初のタスクの 1 つです)。
私は現在 Haskell を学んでいるので、私の質問は、これ (および、基本的には単純な反復よりも複雑なものを含む命令型構造、たとえば、中断、継続、一時変数など) を Haskellにどのように変換するのかということです。
私のバージョンは
しかし、これはまだ命令的な醜い町にいるようです。
では、そのような場合に FP スタイルで対処する方法について、アドバイスをいただけますか?
algorithm - 命令型アルゴリズムよりも高速な関数型アルゴリズムはありますか?
命令型よりも高速な関数型のアルゴリズム (またはそのようなアルゴリズムの引数) を探しています。
私が関数型コードを好むのは、それが命令的なペンダントよりも表現力豊かで読みやすいからです。しかし、この表現力によって実行時のオーバーヘッドが発生する可能性があることも知っています。常に末尾再帰などの手法が原因であるとは限りませんが、多くの場合、処理が遅くなります。
最近の PC は非常に高速であり、開発時間はランタイムよりもコストがかかるため、プログラミング中は機能コードのランタイム コストについては考えません。さらに、私にとって読みやすさはパフォーマンスよりも重要です。それにもかかわらず、私のプログラムは十分に高速なので、命令的な方法で問題を解決する必要はめったにありません。
実際には命令型スタイル (ソート アルゴリズムなど) で実装する必要があるアルゴリズムがいくつかあります。そうしないと、ほとんどの場合、遅すぎるか、大量のメモリが必要になります。対照的に、関数型言語で記述されたパーサーのようなプログラム全体のパターン マッチングなどの手法により、コンパイラがコードを最適化する可能性があるため、命令型言語で記述されたパーサーよりもはるかに高速になる場合があります。
しかし、関数型スタイルでより高速なアルゴリズムはありますか、またはそのようなアルゴリズムの引数を設定する可能性はありますか?
c - OOPのバックグラウンドから来て、私が「Cウェイ」を取得するのに役立ついくつかのCプログラム/ライブラリは何でしょうか?
私は長い間OOP(C ++ / Java / PHP / Ruby)を行ってきましたが、LinuxやApacheなどの大規模なプログラムやライブラリを完全に必須のスタイルで作成する方法を想像するのは非常に困難です。Cで物事がどのように行われているのかを理解するために私が見ることができる小さなオープンソースCプロジェクトは何でしょうか?
プロジェクトがGitHubでホストされている場合は、ボーナスポイントが加算されます。
haskell - Haskellが(時々)「最高の命令型言語」と呼ばれるのはなぜですか?
(この質問がトピックに沿っていることを願っています-答えを検索しようとしましたが、明確な答えは見つかりませんでした。これがトピックから外れている、またはすでに答えられている場合は、モデレート/削除してください。)
Haskellが最高の命令型言語であるという冗談半分のコメントを数回聞いたり読んだりしたことを覚えています。もちろん、Haskellはその機能的機能で最もよく知られているため、奇妙に聞こえます。
だから私の質問は、Haskellのどのような性質/機能(もしあれば)がHaskellが最高の命令型言語と見なされることを正当化する理由を与えるのですか?それとも実際にはもっと冗談ですか?
algorithm - 「最長増加部分列」問題を解くアルゴリズムを説明してください
過去 2 時間、このアルゴリズムを理解しようとしてきましたが、理解できないようです。誰か分かりやすく説明してくれませんか?
functional-programming - Assignment ステートメントに相当する式は何と呼ばれますか?
命令型プログラミングでは、ステートメントを使用して、次のようなことを行います。
私は、式で同等のものは次のようになるべきだと考えてきました。
これは肉屋のパイソンで書かれていますが、それは問題ではなく、私が何を意味するかを説明する必要があります. プログラム内の変数の状態を変更する (変更されたままになる) のではなく、ブロック スコープ内で、そのスコープ内のすべての式について変更します。
こういう名前がありそうですね。私は純粋関数型言語を知りませんが、代入文が存在しない場合に一時的な値を計算するには、この種のものが非常に役立つと思います。それが何と呼ばれているか、これが組み込まれている言語は何か、それに関する詳細情報はどこで入手できるか知っている人はいますか?