問題タブ [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.
scala - 部分的に適用された関数から var と val を取得する
部分的に適用された関数を使用して、scala でデータベース呼び出しの周りに便利なラッパーを作成しようとしています。
主に接続/結果セットを自動的に閉じるため。rs
ただし、変数を val ではなく var として返したいと思います。クエリからの結果セットに rs を割り当てようとすると、val に再割り当てできないというエラーが表示されます。
または、ストリーム/接続を開閉するためのコードの再利用を最大化する他の方法がある場合は、それも共有してください。
編集: Randall Schulz が述べたように、Scala ARMは実際の問題に対処します。ただし、投稿した質問は Scala ではサポートされていません。
javascript - 固定パラメータのカスタムオーダーによる JavaScript 関数のカリー化
カリー化関数は便利です:
ここで、パラメーターの順序が間違っている別の関数を使用する必要があると想像してください
bind 関数を使用して同じ結果を得る方法 - otherTag 関数を使用して強力なタグを作成します。
バインドのみを使用してこの関数をカレー化する方法は?
次のように otherTag 関数をラップすることに基づくソリューションには興味がありません。
カリー化したい引数の順序を伝えるために bind に引数を渡すことが可能かどうか知りたいこと。
haskell - Haskellドルオペレーターアプリケーション
関数適用がhaskellでのカリー化でどのように機能するかを理解するのに問題があります。次の機能がある場合:
この関数を部分的に適用するには、(a -> b)
関数($
の最初の引数)を提供する必要があることを理解しています。
では、なぜ最初に値を適用できるのでしょうか(つまり、逆引数)?
ここで何が欠けていますか?
scala - 「無料」のケースクラスの部分コンストラクターの取得
2つのプロパティを定義する抽象クラスを考えてみましょう
これは、次のようなさまざまなケースクラスの基本クラスです。
目標:最終的に、前述のケースクラスのインスタンスを2つの方法で作成できるようにしたいと思います。
アプローチ:したがって、 shas
を部分的に構築できるようにするヘルパークラスを定義することは合理的と思われます。A
問題:現在の機械では、のような呼び出しは許可されていませんBar(1)
。これは、実際には、の呼び出しBar.apply(1)
、つまりapply
、コンパイラによって生成されたオブジェクトによって定義されたメソッドの呼び出しであるためBar
です。
Bar
コンパイラにオブジェクトをとして生成させることができれば素晴らしいと思いますobject Bar extends PartialAConstructor
。
ただし、ケースクラスのコンパニオンオブジェクトの生成に影響を与えることはできないようです。
必要なプロパティ:
ケースクラス:などは、構造的同等性などのコンパイラで生成された機能と、自動生成されたエクストラクタを使用したいので、ケースクラスのままにする必要が
Foo
あります。Bar
copy
「完全な」構造的同等性:ケースクラスを次のように定義する
コンパイラによって生成されたメソッドは引数の最初のリストのみを考慮するため、オプションではありません。
/li>equals
したがって、次のことが誤って成立します。コードの繰り返しをできるだけ少なくする:たとえば、もちろん、
A
しかし、それは、Foo
拡張するすべてのケースクラスに対して実行する必要がありますBar
。
c - Cプリプロセッサで部分的なマクロアプリケーション/カリー化は可能ですか?
問題の例として、partialconcat
次のコードでマクロを実装する方法はありますか?
編集:
FOR_EACH
可変個引数マクロが与えられた場合の別の例を次に示します(別の質問に対するこの回答の実装例を参照してください)。
より大きな目的のために、おそらく別のマクロ内で、いくつかのオブジェクトのメンバーを呼び出したいとしましょう。次のように動作するマクロcallMemberが必要です。
を生成します
これはcallMember(someMember)
、次のように動作するマクロを生成する必要があります
haskell - Haskell では、マップ関数にリストを渡すだけの場合、マップ関数は何を意味しますか?
私がデバッグするように与えられた Haskell プロジェクトでは、map
1 つのパラメーター (リスト) のみで使用されるコード内のインスタンスが渡されます。
例えば
と
map
この文脈で何を意味するか/何をするか?
python - functools partial はどのように機能しますか?
functools でパーシャルがどのように機能するかについて頭を悩ませることができません。私はここから次のコードを持っています:
今列に並んでいます
どの引数を渡しても、どちらがieを返すかについてincr
渡されることがy
わかります。lambda
sum(1, y)
1 + y
という事は承知しています。しかし、私はこれを理解していませんでしたincr2(4)
。
部分関数のようにget はどのよう4
に渡されますか? x
私にとっては4
、sum2
. x
との関係は4
?
clojure - Clojure部分適用-関数のコレクションを返すために'map'を取得する方法は?
私は基本的にClojuregoogleグループのディスカッションからヤンクした関数を持っています。これは、コレクションと任意の長さの関数のリストを取得し、それをフィルタリングして、元のリストのすべての要素を含む新しいコレクションを返します。関数の内、trueと評価されます。
私はプロジェクトオイラー問題1の一般化可能なソリューションを作成することで遊んでいるので、次のように使用しています。
正解です。
ただし、関数の代わりにintを渡すことができるように変更したいと思います。
ここで、3と5を任意の数のintに置き換え、multi-any-filter関数内で無名関数として(= 0(mod xy))の関数ラッピングを実行できます。
残念ながら、これは私のClojure能力の限界を超えています。引数のリストに対して何かをする必要があると思いますが、それぞれが別の引数を待っている関数のリストを返すmap
方法がわかりません。map
Clojureは、他の関数型言語でのカリー化の方法を私が学んだ方法をサポートしていないようです。おそらく私partial
は適切な場所で使用する必要がありますが、その方法はよくわかりません。
つまり、任意の数の引数(関数ではない)を渡して、それらの各引数を同じ関数でラップし、その関数のリストを私juxt
の代わりに渡すことができるようにしたいのです。上記の機能。funcs
multi-any-filter
ヒントをありがとう!
javascript - JavaScript とカリー化
私は John Resig の Secrets of Javascript ninja を読んでいて、カリー化と部分関数の例の 1 つを試していました。コードは次のとおりです。
ただし、次のコードは Uncaught TypeError: Illegal invocation on the apply function というエラーを生成するようです。
それはすべて理にかなっているように見えるので、理由を理解できないようです。
関数コンテキスト ( ) として関数をbindClick
呼び出す無名関数を返し、引数は次のようになります。elem.addEventListener
window
this
["click", function() {console.log("OK"); }]