問題タブ [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.
programming-languages - 命令型および質問型コードの意味
私のマネージャーは、ASP.netでコーディングするように私に依頼しました。私の命令型および質問型のコードとはどういう意味ですか。それはプログラマーとどのように関係していましたか?
scala - オブジェクト指向プログラミングと関数型プログラミングの混合
オブジェクト指向プログラミングと関数型プログラミングの両方を促進するために利用できる言語は何ですか?第一級関数をサポートする言語はどれも機能的であると見なすことができることを私は知っていますが、私は両方のコーディングスタイルを特に対象とした構文を探しています。
このような言語を使用して、すべての状態変化をコードの1つの部分に分離し、プログラムの残りの部分を純粋関数型にすることを想像しています。それを考えるだけで私はよだれを垂らします(天国をデバッグします!)。
これまでのところ、 Scalaを発見したのは聞いたばかりですが(そして、見た目は素晴らしいです)。この「混合スタイル」パラダイムに大きな競争相手はいますか?
haskell - 実世界での Haskell 対手続き型プログラミング
最近は関数型プログラミングに真剣に取り組んでいます。
私は Haskell とそれが提供する可能性に非常に興奮していますが、習得には時間がかかることもわかっています。Haskellの学習方法に関するSOの質問では、実際に「習得」するには数年ではないにしても数か月かかると答えています。
今、私はC、PHP、いくつかのオブジェクト指向のものなどを知っています.Haskellは「現実の世界」ではあまり使われていないと言われました. Haskell は苦労する価値がありますか?
この質問では、なぜ人々は関数型プログラミングがうまくいくと思うのかという結論は、関数型プログラミングが「うまくいく」ということのようです。しかし、確かに手続き型プログラミングはトップにとどまりますよね?
編集: keparo は私の質問をうまく明確にしています:手続き型言語とは対照的に、Haskell と関数型プログラミングのパラダイムを研究することは私にとって価値がありますか?
functional-programming - 関数型言語のプログラムでは、スタック オーバーフローが発生する可能性が高くなりますか?
私は ocaml を学び始めており、この言語の再帰の力を本当に高く評価しています。ただ、一つ気になるのはスタックオーバーフローです。
ocaml が関数呼び出しにスタックを使用すると、最終的にスタックをオーバーフローしませんか? たとえば、次の関数があるとします。
最終的にスタックオーバーフローを引き起こす必要があります。C++ で (再帰を使用して) 同等のことを行うと、オーバーフローすることがわかっています。
私の質問は、関数型言語がスタックをオーバーフローするのを防ぐためのセーフガードが組み込まれているのでしょうか? そうでない場合、上記の合計アルゴリズムは for ループを使用した手続き型スタイルで記述されており、(整数オーバーフローを無視して) 任意の数を処理できるため、このようにあまり有用ではありませんか?
f# - 関数から命令型コードを削除するにはどうすればよいですか?
私は機能的な世界に不慣れであり、これに関する助けに感謝します。
この単純な関数から醜い命令型コードをSUPERCEDEしたいのですが、その方法がわかりません。
私が欲しいのは、確率値に関してIEnumerable(F#のseq)からランダムにいくつかの要素を選択することです-タプルの2番目の項目(したがって、「確率」0.7の項目は0.1よりも頻繁に選択されます)。
randomPick
必須ではありますが、機能的に実装するのは非常に簡単だと思いますか?
これは機能的ですが、seq(募集)ではなくリストを取得してください。
java - Java はどのように「命令型」プログラミング言語であり、「宣言型」プログラミング言語ではありませんか?
特に C/C++ (宣言型) と比較して、Java はどのように命令型ですか?
groovy - 機能的なClojureまたは命令型Groovyはより読みやすくなっていますか?
OK、今は不正行為はありません。
いいえ、実際には、1、2分かかり、これを試してみてください。
「ポジション」は何をしますか?
編集:cgrandの提案に従って簡略化。
さて、このバージョンはどうですか?
私はClojureを学んでいて、関数型プログラミングをいつも楽しんでいるので、それが大好きです。Clojureソリューションを思いつくのに時間がかかりましたが、エレガントなソリューションを考えなければならないことを楽しんでいました。Groovyのソリューションは問題ありませんが、私はこのタイプの命令型プログラミングが退屈で機械的であることに気付いたところです。Javaを12年間使用した後、私は轍を感じ、Clojureを使用した関数型プログラミングが必要な後押しになりました。
そうです、要点を理解してください。正直に言うと、数か月後に戻ったときにClojureコードを理解できるのではないかと思います。確かに私はそれをコメントすることができますが、それを理解するためにJavaコードにコメントする必要はありません。
だから私の質問は:関数型プログラミングパターンにもっと慣れることの問題ですか?関数型プログラミングの達人はこのコードを読んで、理解するのが簡単だと思っていますか?どのバージョンがわかりやすいと思いましたか?
編集:このコードが行うことは、同点のプレイヤーを追跡しながら、ポイントに応じてプレイヤーの位置を計算することです。例えば:
programming-languages - 関数型プログラミングは命令型プログラミングのサブセットですか?
関数型プログラミングの主な特徴の 1 つは、副作用のない関数の使用です。ただし、これは命令型言語でも実行できます。再帰関数とラムダ関数 (C++0x など) についても同じことが言えます。したがって、命令型プログラミング言語は関数型プログラミング言語のスーパーセットなのだろうか。
c# - プログラミングにおける宣言型パラダイムと命令型パラダイムの違いは何ですか?
私はWebを検索して、私に光を当てる宣言型および命令型プログラミングの定義を探しています。しかし、私が見つけたいくつかのリソースで使用されている言語は、たとえばWikipediaなどでは気が遠くなるようなものです。この主題に何らかの視点をもたらす可能性のある実際の例を誰かが私に示すことができますか(おそらくC#で)?
functional-programming - 進捗状況を報告するための慣用的なclojure?
clojureでマップされた関数の進行状況をどのように監視する必要がありますか?
命令型言語でレコードを処理するとき、私は頻繁にメッセージを印刷して、1000レコードごとにレポートするなど、状況がどこまで進んだかを示します。基本的に、これはループの繰り返しをカウントしています。
レコードのシーケンスに関数をマッピングしているclojureで、これにどのようなアプローチをとることができるのか疑問に思いました。この場合、メッセージを印刷すること(そして進行状況を数えることさえ)は本質的に副作用のようです。
私がこれまでに思いついたものは次のようになります。
例えば:
この効果を達成する他の(より良い)方法はありますか?
私がしていることに落とし穴はありますか?(例えば、私は怠惰を保ち、頭を抱えていないと思います。)