問題タブ [free-variable]

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 投票する
1 に答える
439 参照

substitution - ラムダ計算の文脈における「自由変数」と「変数の自由発生」の違い

ラムダ計算のコンテキストで自由変数と変数の自由発生の間に違いはありますか? はいの場合は、例を 1 つまたは 2 つ挙げて説明してください。実際、次の行に出くわしたラムダ式の変換規則を調べていました。

変換規則を述べる際に、表記法は、の各自由出現をE[E'/V]代入した結果を意味するために使用されますE'VE

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

binding - スキームにおける引用語の自由変数の束縛時間

私は、Scheme で引用現象がどのように機能するかを理解しようとしています。特に、引用された用語の自由変数がいつバインドされるかを理解したいと思います。

たとえば、私が書くとき

42 を返します。したがって、バインド時間は実行時であると推測します。しかし、この場合、なぜこのコードは失敗するのでしょうか

そして戻る

引用された用語の結合時間モデルとは何か(たとえば、MetaOCaml に匹敵しますか?(私はそうは思いません))、define と let の違いを説明してもらえますか?

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

python - 外部から関数の FREE 変数にアクセスする方法

次のような関数と内部関数があるとします (これは変更できません)。

そして、そのようなinner_fに対応するouter_fの呼び出されたバージョンである関数「func」のみを取得します。

このような場合、「some_callable」という名前の変数は int 型であり、パラメーターを指定して func を呼び出すと、次のような応答が得られます。

func関数インスタンスしかない場合 (つまりouter_f が呼び出された後)、関数の外部からsome_callableにアクセスしたいと思います。

私が間違っていなければ、some_callable は関数 inner_f の自由変数 (func.func_code.co_freevars) です。func を見るだけで、パラメーター int で func が呼び出されていることをどのように知ることができますか?

inspect モジュールを使用したり、関数の属性を調べたりして、問題を解決できませんでした。トレース モジュールで func を呼び出してからスタック トレースを調べたり、pdb を使用したりする方法は有望に思えますが、見苦しいハックのようなものです。

この質問は単純に、関数のスコープの自由変数に外部からアクセスすることを単純化します。

では、関数を実行せずに、自由変数「some_callable」が「int」であることをどのように知ることができますか?