問題タブ [currying]

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.

0 投票する
6 に答える
6797 参照

f# - F#カリー化機能

誰もがまともな例を持っています、できれば実用的/有用です、彼らは概念を実証するために投稿することができますか?

0 投票する
22 に答える
195241 参照

javascript - 「カレー」とは?

いくつかの記事やブログでカリー化された関数への言及を見てきましたが、適切な説明 (または少なくとも 1 つでも意味のあるもの) を見つけることができません。

0 投票する
17 に答える
44918 参照

javascript - JavaScript カリー: 実用的なアプリケーションは何ですか?

私はまだカレーに慣れていないと思います。私はそれが何をするのか、そしてそれを行う方法を理解しています。使うシチュエーションが思い浮かびません。

JavaScript のどこでカリー化を使用していますか (またはそれを使用している主要なライブラリはどこですか)? DOM 操作または一般的なアプリケーション開発の例を歓迎します。

答えの1つはアニメーションに言及しています。のような関数は引数として要素slideUpfadeIn取り、通常はデフォルトの「アニメーション関数」が組み込まれた高次関数を返すカリー化された関数です。いくつかのデフォルトで上位関数を適用するよりも優れているのはなぜですか?

それを使用することの欠点はありますか?

JavaScript のカリー化に関する優れたリソースを以下に示します。

コメントが増えたら追加します。


したがって、答えによると、カリー化と部分適用は一般的に便利な手法です。

高レベル関数を同じ構成で呼び出して頻繁に「改良」する場合は、高レベル関数をカリー化 (または Resig のパーシャルを使用) して、シンプルで簡潔なヘルパー メソッドを作成できます。

0 投票する
10 に答える
30308 参照

c++ - C ++でカリー化を行うにはどうすればよいですか?

カリー化とは?

C ++でカリー化を行うにはどうすればよいですか?

STL コンテナのバインダーについて説明してください。

0 投票する
15 に答える
59220 参照

language-agnostic - カリー化と部分適用の違いは何ですか?

他の人のカリー化の例はカリー化ではなく、実際には部分適用にすぎないというさまざまな苦情をインターネットでよく目にします。

部分適用とは何か、またはカリー化とどのように違うのかについての適切な説明は見つかりませんでした。一般的な混乱があるようです。同等の例は、ある場所ではカリー化、他の場所では部分適用として説明されています。

誰かが私に両方の用語の定義とそれらがどのように異なるかについての詳細を教えてもらえますか?

0 投票する
3 に答える
1834 参照

programming-languages - Schemeでのカレー関数の実装

次のことをするとどうなりますか?

私はこれができることを理解しています:

そして今、私はカレーを使うことができます。私が興味を持っているのは、関数の定義です。ラインはありますか

xを引数として新しいラムダを作成し、それを1で呼び出しますか?それとも、それよりも賢く、既存のものを再利用するだけですか。(たとえば、私がそうする場合(curried 0)、その((func x) 1)行は次のようになります(curried 1)-PLAIスキームはこれを行いますか?)

0 投票する
1 に答える
482 参照

closures - クロージャとカリー化の違いと考えられる類似点は何ですか?

クロージャとカリー化についての投稿をいくつか読んだのですが、答えが見つからなかったような気がします。では、クロージャとカリー化の違いと、おそらく類似点は何ですか?助けてくれてありがとう :)

0 投票する
3 に答える
22759 参照

c# - C#での適切なカリー化

DoSomething(パラメーターなしの)関数を取り、それを何らかの方法で処理するメソッドが与えられます。以下のスニペットよりも、パラメーターを使用して関数の「オーバーロード」を作成するためのより良い方法はありますか?

0 投票する
3 に答える
895 参照

c# - 拡張メソッドでデリゲートを暗黙的にキャストできないのはなぜですか?

何かを Action または Func に自動的にキャストする方法を見つけようとしていますが、思いつくのは次のようなものです。

これを行うには、より良い/より簡単な方法が必要です。何か考えはありますか?

0 投票する
6 に答える
5806 参照

scheme - 初級者: Scheme のカリ​​ー化された関数

SICP の講義とテキストを使用して、Scheme について独学しています。「式 E の適用は (E E1,...En という形式の式です。これには、式 (E) に対応する n=0 の場合が含まれます。カリー化されたアプリケーション」という演習を見ています。 E のアプリケーションは、E のアプリケーションまたは E の Curried アプリケーションのアプリケーションです。」

(編集:上記の引用を修正しました...もともと定義を誤って引用していました。)

タスクは、3 に評価される手続きの Curried アプリケーションを定義することです。

私はここでのアイデアを本当に理解していません. Curriying に関するウィキペディアのエントリを読んでも、あまり役に立ちませんでした.

ここで求められていることについて、より明確な説明を手伝ってくれる人はいますか?

この問題の後にさらに 5 つの解決すべき問題があるため、実際にこの問題の答えを教えていただけると助かります。... 基本的な考え方がわかりません。

追加: ブライアン・キャンベルの長い説明の後でさえ、私はまだ少し迷っています.

(foo1 (sqrt 3)))foo のアプリケーションと見なされるため、foo のカリー化されたアプリケーションと見なされますか?

単純すぎるようですが、多分...

(((foo1 2 )) 2)DrScheme に入力すると、次のエラーが表示されます (これは私が期待していたものです)。

再読後カレーとは?foo1 を次のように再定義することもできることを理解しています。

それで、私はタイプすることができます

12

しかし、これは出力として 3 を生成することに実際には近づきません。これは、元の foo1 を実際にカリー化しているのではなく、再定義しているだけのようです。

くそー、C プログラミングの 20 年間は、これに対する準備ができていませんでした。:-) :-)