2011-01-03 4 views

答えて

3

私はこれを行う方法はないと思います。

オブジェクトはこれを行う方法がないため、このような単純なアプローチは機能しません。内部的には、情報はFsiDynamicCompilerStateレコードに格納されていますが、F#Interactiveはその相互作用の現在の状態を保持するために使用します(ソース内の "fsi.fs"で見つけることができます)。

残念ながら、この状態にアクセスするために使用できる静的プロパティは見つかりませんでした。main関数で作成され、他の場所には格納されていないFsiDynamicCompilerのフィールドとして保持されています。原則として、スタックトレース経由でインスタンスにアクセスできるようにしたいかもしれません(ただし、スタックフレームのローカル変数を取得する方法は見つかりませんでした)。

これを可能にするためにfsi.exeを変更したい場合は、別の質問ですが、それはあなたが望むものではないと思います。

+0

私のためにこれを調べてくれてありがとう。あなたは 'fsi.exe'を修正することはこのプロジェクトにとって実行可能な選択肢ではないと思っていますが、それはそれ自体の素敵なプロジェクトなので、提案に感謝します。コア機能をライブラリコンポーネントに抽出するのがよいでしょう。 GUIのフロントエンドを構築するなど、セッションをプログラムで作成したり操作したりすることができます。 –

関連する問題