問題タブ [proc]
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.
ruby - 動的に更新されるRuby procに変数を渡す方法は?
これは問題なく動作しますが、v を「バインド」して動的に更新したい場合はどうすればよいでしょうか。例えば:
ruby - Rubyブロックから配列へ
メソッドでブロック引数を取り、内容(シンボルの配列)を変換して配列にしようとしています。例えば:
メソッドの引数として配列を使用する方が簡単なことはわかっていますが、sequence
別のメソッドとの一貫性を維持しようとしています。
java - Java Runtime.getRuntime().exec(); プログラムを実行していません
問題は、ゲームランチャーを作成しようとしていて、ログインすると実際のゲームが開始されることです。
これを行うように言われたコードはRuntime.getRuntime().exec();
のような単純なプログラムを実行できますRuntime.getRuntime().exec("firefox");
が、プログラムを実行しようとすると起動しません。
これは私のコードです
私も試してみました
Linux Debian を使用しています
java -version
出力付き
すべての助けが高く評価されました
ruby - それ自体がブロックを期待するブロックをrubyのinstance_execに渡すことはできますか?
私はコードを期待しています
出力する
しかし、エラーが発生しました
それ自体がブロックを期待するブロックをrubyのinstance_execに渡すことはできますか?</ p>
ruby - Rubyで非推奨になったprocはどれですか?
『Programming Ruby:The Pragmatic Programmers Guide by Dave Thomas with Chad Fowler and Andy Hunt』の作成に関して、Proc
次のような脚注があります。
「実際には3番目のprocがありますが、事実上非推奨です。」
これがどちらの方向かわかりませんでした。私は次の方法でProc
:を作成することを知っています。
1
2
3
私は4番目の方法を知りたいので、誰かが私に答えてくれたら嬉しいです。
sas - SAS Proc IML:ベクトルの長さ
たとえば10X2の行列があり、別の変数の下に行列の長さの値(したがって、10)をSASに格納する場合、PROC IMLでどのように実行されますか?
ruby - この小さなDSLをRubyで作成するにはどうすればよいですか?
私の機能は次のとおりです。
メソッドのブロック内で関数を一時的に拡張したいと思います。
では、元のメソッドに渡す前に、文字列をhello_scope
前に追加したいだけです。次に例を示します。scope
str
hello
Rubyでこの種のことになると、私は一種の初心者です。誰かが私がこれをエレガントな方法で解決するのを手伝ってもらえますか?
編集:
作業が簡単になる場合は、次のように、メソッドを引数としてブロックに渡しても問題ありません。
ruby - procs、lambdas、blocks内のreturnステートメント
return
ブロック、プロシージャ、ラムダで どのように機能するかを理解するのに多くの問題があります。
たとえば、次の場合、エラーをスローしbatman_ironman_proc
ながら、なぜ機能するのですか?batman_yield
ruby - rubyのクラスインスタンス内でparamsを使用して渡されたprocを実行する
この例は少し工夫されていますが、テストからのものであるため、このように機能し、実際のライブラリでこれを使用する方法を理解するのに役立ちます。私は次のように定義されたラムダを持っています:
これをオブジェクトに渡し、そのオブジェクトのコンテキストでprocを実行したいと思います。オブジェクトは次のようになります。
私はinstance_evalを使用してprocを実行するソリューションに精通しています。
しかし、procに値を渡す必要があるため、これは機能しません。私は実用的なソリューションのようなものを管理しましたが、それはハッキーでエラーが発生しやすいと感じています。
他のすべての方法はundefined method process
ruby - ruby、プロシージャ、バックグラウンド処理: すべてを組み合わせる戦略
オブジェクトのバッチを取得し、それらをキューにパイプして非同期/後で処理するソリューションを設計しています。私は、ワーカーがデータストアにマーシャリング/ヤムリング/何でもされ、別のプロセスで処理される、delayed_job/resque/sidekiq に向けたソリューションをターゲットにしています。
したがって、私が設計した方法では、オブジェクト ID、そのクラス、およびそれぞれで実行する必要がある特定のアクションを受け取るこのワーカーがあります。なぜIDとクラス名を保存するのですか? これらは簡単にマーシャリングできる要素 (文字列、整数) であり、ほとんどのデータ ストアにはマーシャリングされるデータ (列 TEXT など) に対して一定の制限があります。ここまでは順調ですね。
さて、犯人:あそこのアクションが見えますか? メソッド識別子ではありません。これはクロージャーを表します (各オブジェクトを引数として取り、その魔法を実行します)。このクロージャは Proc であり、proc は (WHY、LORD、WHY????) マーシャブルではありません。
だから、これは私の計画を台無しにします。私はどこかにシングルトン識別子を持ち、クロージャーを返す補助隠しメソッドを動的に挿入する戦略を考案しています。そのため、ジョブは ID、クラス名、およびこの補助メソッド ID でマーシャリングされます。ジョブが実行されると、すべてのオブジェクトでアクションが実行され、最後にシングルトン インスタンスからこのメソッドを動的に削除します。これが機能するには、この識別子が一意である必要があり、そのためにプロシージャ クロージャの object_id を使用しています。ここまでは順調ですね。問題は、通常、バックグラウンド キューが、ジョブをキューに入れるプロセスとは別のプロセスでジョブを実行することです。つまり、ジョブが実行されると、proc を返す動的に注入されたメソッドは使用できません。
したがって、私の問題はサブ問題に細分されます。
- オブジェクトに対して実行されるアクションが必ずしも既存のメソッドではない場合、オブジェクトのバッチを後で処理するために効率的にキューに入れる方法は?
- procマーシャリングを回避するには?
- プロセス通信を確立する方法 (サードパーティ テクノロジのメッセージ キューを使用せず、可能であれば単純な Ruby のみ)
私の問題に関する他の戦略を知っている人はいますか? たぶん、共有メモリ、プロセス間通信、その他ですか?それとも、プロシージャを「マーシャリング」するための戦略でしょうか?
アップデート:
DRb を使用したソリューションを考案しました。このソリューションでは、補助メソッドを割り当てるこのシングルトン オブジェクトが DRb オブジェクトとして外部プロセスに提供されます。危険なパブリック API を追加するという欠点があります。誰かが利点/欠点/代替案を知っていますか?