問題タブ [proc-object]

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.

0 投票する
7 に答える
8345 参照

ruby - Rubyでラムダ(Proc)をマーシャリングするにはどうすればよいですか?

Joe Van Dykは Ruby メーリング リストに次のように質問しました。

やあ、

Ruby では、lambda/proc オブジェクトをマーシャリングできないと思いますよね? Lispや他の言語でそれは可能ですか?

私がやろうとしていたこと:

そのため、何をすべきかのコンテキスト/コードを含むラムダ オブジェクトを BackgroundJob に送信しています。しかし、それは不可能だったと思います。プログラムの実行後に何をすべきかの指示を含む通常の Ruby オブジェクトをマーシャリングすることになりました。

ジョー

0 投票する
4 に答える
7311 参照

ruby - Rubyコードをどのようにストリング化/シリアライズしますか?

Ruby コードにラムダ/Proc を記述し、それをシリアル化してディスクに書き込み、後でラムダを実行できるようにしたいと考えています。みたいな...

後で、Ruby インタープリターの別の実行で、私は言うことができるようにしたい.

Marshal.dump は Procs では機能しません。Perl にData::Dump::Streamerがあることは知っていますが、Lisp ではこれは些細なことです。しかし、Rubyでそれを行う方法はありますか? 言い換えれば、の実装は何でしょうか?save_for_later

編集以下の私の答えはいいですが、自由変数( など)を閉じずx、ラムダとともにそれらをシリアル化します。だから私の例では...

... 文字列出力に の定義が含まれていませんx。おそらくシンボルテーブルをシリアル化することによって、これを考慮した解決策はありますか? Rubyでアクセスできますか?

編集 2 : シリアル化されたローカル変数を組み込むように回答を更新しました。これは許容できるようです。

0 投票する
1 に答える
139 参照

ruby - このコードが Proc.call の後に nil を生成するのはなぜですか?

ゼロの原因は何ですか?

0 投票する
1 に答える
116 参照

ruby - Procを呼び出すArgumentError

上記のprocを呼び出そうとすると、次のようになります。

私の期待は、メソッドがこのタイプのシグニチャーで定義されている場合、procをメソッドに渡すことができるということでした。

次に、次のようにprocinsiidefooを実行できます。

0 投票する
2 に答える
111 参照

ruby - 引数が 1 つのシグネチャを持つメソッドに 2 つの引数を渡すにはどうすればよいですか?

についてどのようにone_arg知ってい&sますか?

0 投票する
3 に答える
16442 参照

ruby - 明示的なリターンがProcに違いをもたらすのはなぜですか?

Ruby ではキーワードはオプションであり、要求するかどうかに関係なくreturn常に ing していると思いました。それを考えると、明示的なinを含むという事実によって決定される と の出力が異なることreturnは驚くべきことです。foobarfooreturnProc f

なぜこれが事実なのか誰にも分かりますか?

0 投票する
1 に答える
195 参照

ruby - Rubyのprocとlambdaの「簡単な」説明はありますか?

Rubyのprocとlambdaの「簡単な」説明はありますか?

0 投票する
3 に答える
6688 参照

tcl - Tcl proc を出力するにはどうすればよいですか?

次のような単純な tcl proc があるとします。

プロシージャを出力するには、どの tcl コマンドを使用できますfooか...つまり、プロシージャのテキストを戻したいです...

例えば:

どうやってfoo {a b} {puts "$a $b"}戻るの?

0 投票する
1 に答える
128 参照

ruby - Proc.call と Proc.[] の使用に Ruby の優先順位の問題はありますか?

最近、友人と Ruby の について話し合っていましたProc。いくつかの方法のいずれかでa を呼び出すことができProcます。1 つの方法は、次のように呼び出すことProc.callです。

もう 1 つは中括弧を使用することですProc.[]

ここに潜在的な優先順位の問題がありますか、またはこれら 2 つのステートメントは完全に交換可能ですか? そうでない場合、異なる結果が得られるコンテキストの例を提供できますか?

0 投票する
8 に答える
66568 参照

ruby - Ruby ブロックで「return」を使用する

「エンドユーザー」コードがRubyブロックに書き込まれるように、組み込みスクリプト言語にRuby 1.9.1を使用しようとしています。これに関する 1 つの問題は、ユーザーがブロック内で「return」キーワードを使用できるようにして、暗黙の戻り値について心配する必要がないようにしたいということです。これを念頭に置いて、これは私ができるようにしたいことです:

上記の例で「return」を使用すると、LocalJumpError が発生します。これは、問題のブロックがラムダではなく Proc であるためであることは承知しています。「return」を削除してもコードは機能しますが、このシナリオでは「return」を使用できるようにしたいと思います。これは可能ですか?ブロックをラムダに変換しようとしましたが、結果は同じです。