0

ここから始める - F# インタラクティブの埋め込み- 私は自分のアプリケーションに FSI を埋め込もうとしています。

ただし、StandardOutput から奇妙なものが返されます。

たとえば、標準の FSI では、これを送信すると:

let a = 3;;

私はこれを取り戻します:

[empty line here]
val a : int = 3
[empty line here]
> |

(パイプは入力位置を表します)

しかし、StandardInput に送信let a = 3;;すると、StandardOutput でこれが返されます。

> 
val a : int = 3
|

他の誰かがこれを試しましたか?私が間違っていることはありますか? そうでない場合、これを回避する方法はありますか? これまでに試したことはどれもうまくいきませんでした。考えられる「悪い」ことを試す前に(送信後にタイマーを設定し、タイムアウト時に>自分自身を追加します)、ある場合は知りたいですより良い方法!

4

1 に答える 1

3

F# Interactive を埋め込む場合、Visual Studio は--fsi-server:<some value>パラメーターを使用します。私の知る限り、これは次の 2 つのことを行います。

  • 出力の印刷方法を変更します ( を印刷するのではなく、別の行に印刷>するSERVER-PROMPT>ため、出力からそれを削除して、入力が予期されるときに状態を検出する方が簡単なはずです)

  • また、F# Interactive でコマンドの実行を停止するために使用できる .NET Remoting チャネルを開始し (たとえば、無限ループに陥った場合)、完了情報を提供することもできます。

MonoDevelop F# プラグインの F# インタラクティブ パッドは、フラグを使用します ( GitHub のソース コードを参照してください)。ほとんど正しく動作すると思いますが\n、出力に追加で出力される場合があると思います。

于 2011-04-04T11:19:34.967 に答える