問題タブ [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.
function - Haskellでは、(+)は関数、((+)2)は関数、((+)2 3)は5です。そこで何が起こっているのでしょうか。
これはどのように可能ですか、そこで何が起こっているのですか?
これには名前がありますか?
他のどの言語がこれと同じ振る舞いをしていますか?
強いタイピングシステムがないものはありますか?
programming-languages - カレープログラミング言語のリストは何ですか?
Haskellはデフォルトで関数カリー化を適用するため、カリー化プログラミング言語と呼ばれていることを別の質問から知りました。この動作を表示する他の言語は何ですか?
haskell - Haskell で部分的に適用された関数をバインドする
私は Haskell の初心者なので、この質問が些細なことだと思ったらすみません:
この種の宣言を GHCi に受け入れさせるにはどうすればよいでしょうか: let foo = fmap (*3) . fmap (+10)
?
let foo :: [Int] -> [Int] =
ファンクターの型を明示的にするために foo (など) に型宣言を追加しようとしましたが、コンパイラーが応答しIllegal Signature
ます。
ありがとう!
編集 - どうやらこれを行うにはかなりの方法があります。私が Tikhon の回答を選んだのは、彼が最初であり、かなり直感的だったからです。みんな、ありがとう!
javascript - Function.prototype.bind()に関する混乱
私はES5Function.prototype.bind
とカリー化引数(基本的に関数のデフォルト引数を作成する)の大ファンです。
私はそれで少し浮気していました、しかし私は私の人生のためにもう自分自身の構造を理解することができません。これは私の遊び場です:
このためのログ出力は次のとおりです。
しかし、私は、オブジェクトが内部{what: 'dafuq'}
の参照としてどのように進むのかを理解していません。私が理解している限り、私たちはへのバインドされた呼び出しを作成しています。MDNの概要をすばやく確認しましょう。this
foo
Function.prototype.call
.bind()
したがって、thisArg
for.call
はhello
関数であり、その後に引数リストが続きます。基本的に何が起こるかはこれです
...うーん、今、私の脳は少し痛いです。私は今何が起こるかについての考えを持っていると思いますが、誰かがそれを詳細に説明するための素晴らしいしっかりした言葉を見つけてください。
- どのよう
{what: 'dafuq'}
になりますthis reference
haskell - 部分適用の説明-参加
異なるシグネチャを持つ関数の部分適用が機能するのはなぜですか?
例Control.Monad.join
として:
それらは明らかに異なるので、なぜそれは議論id :: a -> a
の代わりに受け入れるのですか?(a -> m b)
types - Coq に (->) の明示的な型コンストラクタはありますか?
ID と構成を提供するクラスを定義しようとしています。他の便利なインスタンス (nil と連結を含むリスト; ID と合成との関係 ;-) ) に加えて、関数のインスタンスが必要です。
与えられた
のようなものを定義できるようにしたい
しかし、Coq の演算子はそのようには機能しません。最初->
は表記だと思いLocate "_ -> _".
ましたが、これはUnknown notation
. ちょっとうまくいきfun a b => a -> b
ますが、後で型がおかしく見えます。
(同じことが にEval compute in
も当てはまります。型を単純化していないようです。)より読みやすいidentity nat : nat -> nat
. (現在、私がやっていることの型は読めなくなります。)
「生」を取得する方法、->
または少なくともCoqにもっと良い型を与えるよう説得する方法はありますか?
補足: 私はInductive
評価セマンティクスを表す多くの を構築しています。私の目標は、「通常の」プログラミング言語のサブセットを Coq にマッピングして戻し、セキュリティ制約を転送し、魔法をかけることです。私は同じことを異なるコンストラクターで何度も何度も証明することを余儀なくされています。これにより、一度だけ証明できるようになることを願っています。カテゴリはこれを抽象化する正しい方法だと思います。私が間違っている場合に備えて、このメモをここに含めます->
。問題全体を回避するより良い方法があるかもしれません。
function - 演算子の部分適用
リストを返すために文字の末尾にスペースを追加したい場合、引数を渡さない場合、部分適用でこれをどのように達成しますか?
また、タイプはありますか?
++ および : 演算子を使用して「解析エラー」が発生したため、最後にスペースを追加するのに問題があります。
私がこれまでに持っているものは次のとおりです。
どんな助けでも大歓迎です!ありがとう
c++ - boost::bindメンバー関数-部分適用チェーン
boost :: bindを使用してカレー関数を連鎖させようとしていますが、解決できないコンパイラエラーが発生します。コンパイルに失敗する私が作ることができる最も簡単な例:
このエラーで失敗します:
これは使用しています
scala - 部分適用で省略されたパラメータの型をscalaが推測できないのはなぜですか?
このことを考慮 :
どうやら Scala は_
inの正確な型をよく認識してsum(1,_)
いますが、そうしなけれ say sum(1,_:Int)
ばなりません。なんで ?
どうやら Scala はランダムに (?) 1 つを選択します。
javascript - 部分適用-EloquentJavascript
私はEloquentJavascriptを読んでいて、以下の例を理解するのに苦労しています。誰でも行ごとの説明ができるでしょうか?具体的には、最初のループが1から始まる理由と、pushメソッドがknownArgsと引数の両方で使用されている理由について混乱しています。これは「部分適用」に関連していることは知っていますが、正確に何が起こっているのかを行ごとに詳しく説明したいと思います。