問題タブ [partial-application]

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 投票する
1 に答える
131 参照

scala - 部分的に適用された関数から var と val を取得する

部分的に適用された関数を使用して、scala でデータベース呼び出しの周りに便利なラッパーを作成しようとしています。

主に接続/結果セットを自動的に閉じるため。rsただし、変数を val ではなく var として返したいと思います。クエリからの結果セットに rs を割り当てようとすると、val に再割り当てできないというエラーが表示されます。

または、ストリーム/接続を開閉するためのコードの再利用を最大化する他の方法がある場合は、それも共有してください。

編集: Randall Schulz が述べたように、Scala ARMは実際の問題に対処します。ただし、投稿した質問は Scala ではサポートされていません。

0 投票する
2 に答える
440 参照

javascript - 固定パラメータのカスタムオーダーによる JavaScript 関数のカリー化

カリー化関数は便利です:

ここで、パラメーターの順序が間違っている別の関数を使用する必要があると想像してください

bind 関数を使用して同じ結果を得る方法 - otherTag 関数を使用して強力なタグを作成します。

バインドのみを使用してこの関数をカレー化する方法は?


次のように otherTag 関数をラップすることに基づくソリューションには興味がありません。

カリー化したい引数の順序を伝えるために bind に引数を渡すことが可能かどうか知りたいこと。

0 投票する
4 に答える
2213 参照

haskell - Haskellドルオペレーターアプリケーション

関数適用がhaskellでのカリー化でどのように機能するかを理解するのに問題があります。次の機能がある場合:

この関数を部分的に適用するには、(a -> b)関数($の最初の引数)を提供する必要があることを理解しています。

では、なぜ最初に値を適用できるのでしょうか(つまり、逆引数)?

ここで何が欠けていますか?

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

scala - 「無料」のケースクラスの部分コンストラクターの取得

2つのプロパティを定義する抽象クラスを考えてみましょう

これは、次のようなさまざまなケースクラスの基本クラスです。

目標:最終的に、前述のケースクラスのインスタンスを2つの方法で作成できるようにしたいと思います。

アプローチ:したがって、 shasを部分的に構築できるようにするヘルパークラスを定義することは合理的と思われます。A

問題:現在の機械では、のような呼び出しは許可されていませんBar(1)。これは、実際には、の呼び出しBar.apply(1)、つまりapply、コンパイラによって生成されたオブジェクトによって定義されたメソッドの呼び出しであるためBarです。

Barコンパイラにオブジェクトをとして生成させることができれば素晴らしいと思いますobject Bar extends PartialAConstructor

ただし、ケースクラスのコンパニオンオブジェクトの生成に影響を与えることはできないようです。


必要なプロパティ:

  • ケースクラス:などは、構造的同等性などのコンパイラで生成された機能と、自動生成されたエクストラクタを使用したいので、ケースクラスのままにする必要がFooあります。Barcopy

  • 「完全な」構造的同等性:ケースクラスを次のように定義する

    コンパイラによって生成されたメソッドは引数の最初のリストのみを考慮するため、オプションではありません。equalsしたがって、次のことが誤って成立します。

    /li>
  • コードの繰り返しをできるだけ少なくする:たとえば、もちろん、

    Aしかし、それは、Foo拡張するすべてのケースクラスに対して実行する必要がありますBar

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

c - Cプリプロセッサで部分的なマクロアプリケーション/カリー化は可能ですか?

問題の例として、partialconcat次のコードでマクロを実装する方法はありますか?

編集:

FOR_EACH可変個引数マクロが与えられた場合の別の例を次に示します(別の質問に対するこの回答の実装例を参照してください)。

より大きな目的のために、おそらく別のマクロ内で、いくつかのオブジェクトのメンバーを呼び出したいとしましょう。次のように動作するマクロcallMemberが必要です。

を生成します

これはcallMember(someMember)、次のように動作するマクロを生成する必要があります

0 投票する
4 に答える
578 参照

haskell - Haskell では、マップ関数にリストを渡すだけの場合、マップ関数は何を意味しますか?

私がデバッグするように与えられた Haskell プロジェクトでは、map1 つのパラメーター (リスト) のみで使用されるコード内のインスタンスが渡されます。

例えば

mapこの文脈で何を意味するか/何をするか?

0 投票する
7 に答える
185828 参照

python - functools partial はどのように機能しますか?

functools でパーシャルがどのように機能するかについて頭を悩ませることができません。私はここから次のコードを持っています:

今列に並んでいます

どの引数を渡しても、どちらがieを返すかについてincr渡されることがyわかります。lambdasum(1, y)1 + y

という事は承知しています。しかし、私はこれを理解していませんでしたincr2(4)

部分関数のようにget はどのよう4に渡されますか? x私にとっては4sum2. xとの関係は4

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

clojure - Clojure部分適用-関数のコレクションを返すために'map'を取得する方法は?

私は基本的にClojuregoogleグループのディスカッションからヤンクした関数を持っています。これは、コレクションと任意の長さの関数のリストを取得し、それをフィルタリングして、元のリストのすべての要素を含む新しいコレクションを返します。関数の内、trueと評価されます。

私はプロジェクトオイラー問題1の一般化可能なソリューションを作成することで遊んでいるので、次のように使用しています。

正解です。

ただし、関数の代わりにintを渡すことができるように変更したいと思います。

ここで、3と5を任意の数のintに置き換え、multi-any-filter関数内で無名関数として(= 0(mod xy))の関数ラッピングを実行できます。

残念ながら、これは私のClojure能力の限界を超えています。引数のリストに対して何かをする必要があると思いますが、それぞれが別の引数を待っている関数のリストを返すmap方法がわかりません。mapClojureは、他の関数型言語でのカリー化の方法を私が学んだ方法をサポートしていないようです。おそらく私partialは適切な場所で使用する必要がありますが、その方法はよくわかりません。

つまり、任意の数の引数(関数ではない)を渡して、それらの各引数を同じ関数でラップし、その関数のリストを私juxtの代わりに渡すことができるようにしたいのです。上記の機能。funcsmulti-any-filter

ヒントをありがとう!

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

javascript - JavaScript とカリー化

私は John Resig の Secrets of Javascript ninja を読んでいて、カリー化と部分関数の例の 1 つを試していました。コードは次のとおりです。

ただし、次のコードは Uncaught TypeError: Illegal invocation on the apply function というエラーを生成するようです。

それはすべて理にかなっているように見えるので、理由を理解できないようです。 関数コンテキスト ( ) として関数をbindClick呼び出す無名関数を返し、引数は次のようになります。elem.addEventListenerwindowthis["click", function() {console.log("OK"); }]