問題タブ [custom-operator]
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.
f# - カスタム演算子をいつ使用するかの基準
私は現在、Real-World Functional Programming を読んでいますが、カスタム オペレーターの主な利点の 1 つである in-fix オペレーターについて簡単に言及しています。F# でカスタム演算子を使用する場合と使用しない場合の基準はありますか? これに相当する回答を探しています。
参考までに、@JohnPalmer がここから参照している引用を次に示します。
3.8 演算子の定義 </p>
F# 向けのライブラリ設計でカスタム シンボリック演算子を定義することは避けてください。
カスタム演算子は、状況によっては不可欠であり、大量の実装コード内で非常に便利な表記デバイスです。ライブラリの新しいユーザーにとっては、名前付き関数の方が使いやすいことがよくあります。さらに、カスタム シンボリック演算子は文書化するのが難しい場合があり、ユーザーは、IDE および検索エンジンに既存の制限があるため、演算子のヘルプを検索するのがより困難であると感じています。
そのため、通常は、機能を名前付き関数およびメンバーとして公開することをお勧めします。
java - RapidMiner プロセスでカスタム クラスをインポートする
Java でカスタム Stemmer を作成し、このコードの演算子が必要です。Rapidminer 5 でカスタム Java クラスをインポートするにはどうすればよいですか?
ありがとうございました!!!
c++ - カスタム == 演算子、どちら側が重要ですか?
JSON Spiritには便利な機能がありますoperator==
この変数lhs
は、他の多くの例でおなじみの「左側」のように見えます。これは、この演算子が割り当てられているものが左側にない場合、これが期待どおりに機能しないことを意味します。
あれは正しいですか?もしそうなら、なぜですか?
どちらの場合も、基準を引用してください。
generics - Generic Custom Operator Functions: 悪い * 命令の奇妙なケース
Swiftでジェネリックとカスタム演算子をいじっているときに、この問題に遭遇しました。以下のコード スニペットでは、2 つの新しい前置演算子 ∑ と ∏ を導入し、それぞれの前置関数をベクトル和と積として実装しています。すべての整数型と浮動小数点型に対してこれらの関数や同様の関数を個別に実装する必要がないように、代わりに 2 つのプロトコルを定義しました: Summable (+ 実装が必要) と Multiplicable (* 実装が必要) です。また、たとえば Array 型と Rage 型で機能する SequenceType 引数用の 2 つの関数を実装しました。最後に、スニペットの最後にある println 呼び出しから、∏(1...100) を除いて、これがすべてうまく機能していることがわかります。ここで、プログラムは EXC_BAD_INSTRUCTION でクラッシュし、他に何もありません。∑(1...100) が機能することに注意してください。同じように実装されていても。実際、行の初期値を変更するとreturn reduce(s, 1, {$0 * $1})
∏への呼び出しからの出力が間違っているにもかかわらず、プログラムがエラーなしで完了するよりも 0 にします。
要するに初期値を0か1にするってこと!? 問題のある行のコードを数行にわたって展開すると、クラッシュが で発生していることが明らかになり$0 * $1
ます。また、クロージャ{$0 * $1}
と{$0 + $1}
I の代わりに、 + および * 演算子関数を直接渡すことができる必要があることにも注意してください。残念ながら、これはコンパイラを怒らせます:「ジェネリックメソッドの部分的な適用は許可されていません」。
何か案は?1 (またはゼロ以外の任意の Int) を 0 に交換すると、どのようにクラッシュする可能性がありますか? また、これが乗算の範囲でのみ発生するのに、初期値が 0 または 1 の加算の範囲は正常に機能するのはなぜですか?
編集:私にとってはかなり恥ずかしいことですが、このコードで私が犯しているエラーは、プログラミングの目のかわいいテストになります。以下のMartinの回答を読む前に、それを理解できるかどうかを確認してください. そうするとき、あなたは自分自身について気分が良くなるでしょう。(ただし、別のキャリアを探す必要があるかもしれません。)
swift - Swift でジェネリックを使用する演算子の数値のみを受け入れる方法は?
数値の演算子を作成しようとしています。たとえば、数値を 10 ずつインクリメントする演算子です。
これは私が書いたコードです:
+=
オペレーターにエラーがあります。数値オペランドが必要です。だから私はこれをしました:
しかし、コンパイルに失敗しました。誰にもアイデアはありますか?
swift - Swift : 辞書の値を更新するカスタム演算子
辞書の値を更新するカスタム オペレーターを作成するエレガントな方法はありますか?
より具体的には、特定のキーに対応する整数値をインクリメントするプレフィックス演算子が必要です。
これは、機能的な方法を使用して実現可能です。たとえば、配列内の要素の頻度を計算するには、次のようにします。
しかし、カスタム演算子を使用して同じことをしようとしています
swift - カスタム演算子 [] を迅速に実装するにはどうすればよいですか
Swift で簡単なキュー クラスを作成しました。Array によって実装されます。これで、組み込みの配列のように実行したいので、[]
演算子を実装する必要がありますが、失敗しました。誰か助けて?
python - テンソルフローで可変依存関係を持つカスタム op でグラフのノードを置き換える
グラフで行われた計算を、同じことを行うカスタム op に置き換えようとしています。
グラフに定数A
と重み変数W
があるとします。カスタム op を作成して、これら 2 つの入力を取得し、計算全体を実行します (重み更新の最後のステップを除く)。
インポート グラフ定義の後に、2 つW
の があります。1 つは元のグラフ定義からのもので、もう 1 つはインポートされたグラフにあります。train op を実行すると、カスタム op は古いものW
を読み取り、新しいW
ものが更新されます。その結果、勾配降下法は正しいことを行うことができなくなります。
問題は、 custom_op のインスタンス化に入力の重み tensor が必要なことW
です。新しいW
ものは、インポート後にのみ認識されます。また、インポートにはカスタム操作が必要です。この問題をどのように回避しますか?