問題タブ [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.
scala - Scalaでa=>b => cから(a、b)=> cを取得するにはどうすればよいですか?
私が持っている場合:
これは次の略記です。
g
署名付きの関数を取得するにはどうすればよいですか?
(すなわち)
の観点からf
?
scala - カリー化とアンカリー化がscalaで暗黙的ではないのはなぜですか
関数がある場合:
(A, B) => C
関数が期待される場所で使用できるように、暗黙的な変換を定義できます。これは逆方向にも行きます。
これらの変換が暗黙的でない (または暗黙的に利用可能でない) のはなぜですか? 私は、悪いことのいくらかの価値のために悪いことが起こる可能性があると仮定しています。これは何の値ですか?
javascript - YUI3ライブラリでカリー化
YUI3ライブラリにはカリー化機能がありますか?
c# - ラムダ (カリー化) を理解するのに助けが必要
Accelerated C# を読んでいるのですが、次のコードがよくわかりません:
最後の行の x は何を指していますか? そして別のものがあります:
これをどう評価するか。(y) => (x) => func( x, y )
何がどこに渡されるのか...混乱します。
macros - 構文規則を使用したスキームでの暗黙のカリー化?
Jeffrey Meunier は、defmacro を使用する暗黙の Curry マクロをここに持っています。誰かがこれを構文規則で書いたことがあるかどうか疑問に思っていましたか?
haskell - カリー化された関数へのパラメーターとしてリスト要素を渡す
まだここでHaskell初心者。私は自分が間違った仮定でトラブルに巻き込まれるのに十分知っています。次の機能がある場合...
リストを取得し、のような指定された関数のパラメーターとして各要素を使用しquadsum
、後で使用するためにカリー化された関数を返すことができる関数が必要です。
私は何かをしようとしてきました...
これができることを期待して...
次のようなカリー化関数を取得しています...:
または、代わりに、次のように呼び出します。
その結果...
これは可能ですか?私はどのくらい見当違いですか?
haskell - Haskell での順不同のカリー化
Haskellで関数の引数を順不同でカリー化するためのエレガントな表記法はありますか?
たとえば、リストのすべての要素で 2 を割りたい場合は、次のように記述できます。
ただし、リストのすべての要素を分割するには、無名関数を定義する必要があるようです
より複雑なケースでは、無名関数はすぐに扱いにくくなります。この場合、 map ((*) 0.5) [1,2,3,4,5] が正常に機能することは承知していますが、Haskell に関数の引数をカリー化するよりエレガントな方法があるかどうかを知りたいと思っています。故障中?
haskell - ハスケル-カリー化?さらに説明が必要
だから何かのような
なぜこれが機能するのですか?カリー化部分。なぜ変数がないのですか?
scala - Scala:カレーコンストラクター
私は次のScalaクラスを持っています:
Personコンストラクターをカリー化された関数として使用したいと思います。
これは機能しますが、これを達成する別の方法はありますか?このアプローチは少し退屈でエラーが発生しやすいようです。Function.curriedのようなものを想像できますが、コンストラクター用です。
haskell - Haskell関数適用とカリー化
私は常に新しい言語を学ぶことに興味を持っています。それは私をつま先立ちさせ、私をより良いプログラマーにする(私は信じています)という事実です。Haskellを征服しようとした私の試みは、これまでに2回行ったり来たりしており、再試行する時が来たと判断しました。3回目が魅力ですね。
いいえ。私は古いメモを読み直しました...そしてがっかりします:-(
前回私が信仰を失った問題は、簡単な問題でした。整数の順列です。つまり、整数のリストからリストのリストへ-それらの順列のリスト:
これは実際には一般的な問題であるため、上記の「int」を「a」に置き換えても適用されます。
私のメモから:
私は最初に自分でコーディングし、成功します。フラ!
私は私の解決策を私の親友であるHaskellの第一人者に送ります。それは通常、教祖から学ぶのに役立ちます。彼は私にこれを送ってくれます。ニーズ"。そのすべてのために、私は最近クールエイドを飲みました、行きましょう:
うーん。これを分解してみましょう:
OK、これまでのところ、とても良いです。「ins」の2行目を理解するのに少し時間がかかりましたが、OK:リスト内のすべての可能な位置に1番目の引数が配置されます。涼しい。
ここで、foldrとconcatMapを理解します。「実世界ハスケル」では、DOTが説明されました...
...の別の構文として...
そして、教祖が送信したコードでは、DOTはフォルダーから使用され、「ins」関数はフォールド「collapse」として機能します。
OK、DOTが教祖によってどのように使用されているかを理解したいので、DOTの定義に従って同等の式を試してみます。(f。g)x = f(gx).. ..
何!?!なんで?OK、concatMapの署名を確認すると、ラムダとリストが必要であることがわかりましたが、それは人間の考えにすぎません。GHCはどのように対処しますか?上記のDOTの定義によると...
...私がしたことは有効でした。
頭を掻く...
だから...DOTの説明は明らかに単純すぎました...DOTは、私たちが実際に「イン」をカレーして最初の引数を「食べる」ことを望んでいたことを理解するのに十分賢いはずです-したがって、 [t]を操作したい(そして、可能なすべての位置に「1」を「散在」させたい)。
しかし、これはどこで指定されましたか?私たちが呼び出したとき、GHCはどのようにしてこれを行うことを知っていましたか?
「ins」署名はどういうわけかこれを伝えましたか...「私の最初の議論を食べる」ポリシー?
特別なことは何もありません。「ins」は、「t」、「t」のリストを受け取り、すべての「散在」を含むリストの作成に進む関数です。「最初の議論を食べて、それをカレーする」ことについては何もありません。
だからそこに...私は困惑しています。私は(コードを1時間見てから!)何が起こっているのか理解していますが...全能の神...おそらくGHCは、「剥がす」ことができる引数の数を確認しようとしますか?
もう一度-イケ...
そして、私は常に私が学んでいる言語を私がすでに知っているものと比較しているので、Pythonで「ins」はどのように見えるでしょうか?
正直に言って、今...どちらが簡単ですか?
つまり、私はHaskellの初心者であることを知っていますが、私は馬鹿のように感じます... 1時間に4行のコードを見て、コンパイラが...何かが見つかるまで、さまざまな解釈を試みます。クリック」?
リーサルウェポンから引用すると、「私はこれには年を取りすぎています」...