問題タブ [functional-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.
database - 関数からリレーショナルへのマッピングは、オブジェクトからリレーショナルへのマッピングよりも簡単ですか?
オブジェクト リレーショナル マッピングについては、こちらを含め、よく議論されています。私はいくつかのアプローチと、落とし穴と妥協の経験があります。真の解決には、オブジェクト指向またはリレーショナル モデル自体の変更が必要なようです。
関数型言語を使用している場合、同じ問題が発生しますか? これら 2 つのパラダイムは、OO と RDBMS よりもうまく適合するはずです。RDBMS のセットで考えるという考え方は、関数型アプローチが約束しているように見える自動並列処理と噛み合っているようです。
興味深い意見や洞察を持っている人はいますか? 業界のプレイ状況は?
function - 「クロージャー」と「ラムダ」の違いは何ですか?
誰か説明してくれませんか?それらの背後にある基本的な概念は理解していますが、それらが同じ意味で使用されているのをよく見かけ、混乱します。
ここまで来て、通常の関数とどう違うのでしょうか?
c++ - std::generate_n()アルゴリズムでカスタムファンクターを使用する正しい方法は?
次のコードは、XPSP3 の VC++ 8 で正しくコンパイルされますが、実行するとランタイム エラーが発生します。
私のヘッダーは次のようになります。
私の実装は次のようになります。
これは正常にコンパイルされ、例外が生成されます (ヘッダーで定義された logic_error 例外ではありません)。
ファンクターの代わりに関数を使用するように実装を変更すると、機能します。
ここでファンクターを使用することの何が問題になっていますか?
haskell - folderr を使用して zip を実装する
私は現在、Real World Haskell の第 4 章に取り組んでおり、 foldr に関して foldl を実装することに頭を悩ませようとしています。
(これが彼らのコードです:)
同じ手法を使って実装しようと思っzip
たのですが、進展がないようです。それは可能ですか?
javascript - Javascript/ECMAScript の関数のスコープは何ですか?
今日、同僚と Javascript のネストされた関数について話し合いました。
この例では、c と同様に、b は a の本体の外では到達できないことが試行で指摘されています。ただし、d は - a() の実行後です。ECMAScript v.3 標準でこの動作の正確な定義を探しましたが、探していた正確な言葉遣いが見つかりませんでした。Sec.13 p.71 が述べていないのは、関数宣言ステートメントによって作成された関数オブジェクトがどのオブジェクトにバインドされるかです。何か不足していますか?
python - Python でのリストのパターン マッチング
Python でリストに対してパターン マッチングを実行したいと考えています。たとえば、Haskell では、次のようなことができます。
したがって、リストを渡すと、head
が最初の要素にrest
なり、末尾の要素になります。
同様に、Python では、タプルを自動的にアンパックできます。
Python のリストで同様のことをしたいと考えています。現在、リストを返す関数と、次のことを行うコードのチャンクがあります。
Python では 2 行ではなく 1 行で何とかできるのではないかと考えました。
functional-programming - SICP の自習にはどの言語を使用しますか?
関数型プログラミングを実際に学ぶためにバグを見つけました。そこで、私の次の自習プロジェクトは、コンピュータ プログラムの構造と解釈に取り組むことです。残念ながら、私は大学で CS を専攻していなかったので、Lisp を学んだことはありません。
SICP はプログラミングのためのツールを強調していませんが、演習を行うには、使用する Lisp に似た言語を選択する必要があります。スキームのいくつかの実装は、抵抗が最も少ない方法のようです。一方、Common LispとClojureを使用した人もいます。Common Lisp や Clojure はプロダクション コードで使用される可能性が高く、私の履歴書には少し適しているように思えます。ところで、私は言語を学ぶこと自体が価値があるという議論を十分に理解していますが、履歴書に役立つ言語を学ぶことは依然として有益です. 私は資本家であり、自分の学習については学者です。
SICP を独学しなければならないとしたら、どの言語を選びますか?またその理由は何ですか? 理想的には、JVM で実行できる言語を使用したいと考えています。確かに、REPL が bash と emacs で動作する言語を使用できます。
追記:Schemeを使わずにSICPを読んでみた人はいますか?もしそうなら、あなたの経験はどのようなものでしたか?
f# - F# の論理否定演算子? (!-同等)
C# の "!" に相当するものは何ですか? F# の演算子?
functional-programming - ソフトウェアメトリクスとしてのファンクションポイント対kloc比...「NameThatTune」メトリクス?
ファンクションポイントからコード行へのメトリックをメトリックとして使用することについてどう思いますか?
昔のゲーム番組「NameThatTune」を思い出します。「その曲に3つの音符で名前を付けることができます!」その機能を0.1キロで書くことができます!これは役に立ちますか?
それは確かに図書館の利用を促進するように思われるでしょうが、それはあなたが望むものですか?
functional-programming - 関数型プログラミング: 最適なプラットフォーム/環境
私は最近、関数型プログラミングについて研究し、遊んでいます。これは、プログラミングについての考え方を広げるためだけに行っています。なぜなら、「関数型」で考えるのは難しいと思うからです。
Glasgow Haskell をダウンロードして、それを試してみました。
私が疑問に思っているのは、Windows で FP を試すのに最適なプラットフォームは何ですか? 私は JVM ベースのアプローチを好みますが、SO に関する別の投稿では、末尾再帰がサポートされていないため、実際の FP 言語を JVM に実装できないことが示されています。何て言う?
編集:私が言ったように、私はHaskellでかなり実験しました。私がScala Webサイトを見直してきた回答の1つのアドバイスについて。Scala の例を見ると、コードはより「なじみ深い」ように見えます (私の背景は C と Java です)。Scala の大きな利点は、Java と並行して使用できる別の言語ツールを提供してくれることです。これは、単なる学習課題とは対照的に、現在の私の専門的な矢筒のもう 1 つの矢になる可能性があります。Scala にさらに取り掛かると、機能的な側面がより優勢になるのでしょうか、それとも機能的な影響を伴う OO コードを書くだけになる傾向があるのでしょうか? 言い換えれば、Haskell は Scala よりも速く、私の先入観に挑戦するでしょうか?