1

Mono を使用した Mac OS X (Snow Leopard) で Fsi.exe が期待どおりに動作するようになりました。カット アンド ペーストの動作が少しおかしいことに気付きました。

fsi に次のエイリアスを定義しました。

alias fsi='ledit mono ~/FSharp-1.9.7.8_2/bin/fsi.exe --gui-'

ledit は、キーボード入力を正しく機能させるように見える Ocaml ユーティリティです。これがないと、fsi は入力を読み取れません。私が何を意味するかを確認するには、ledit なしで Fsi.exe を試して、次のように入力します。

let square x = x * x;;

ledit がないと、入力を解析できないようです。つまり、文字列を入力した後、">" プロンプトに戻ることはありません。ledit を使用すると、">" プロンプトがすぐに返されます。

もちろん、 --gui- は fsi が System.Drawing などの不足に関するすべてのメッセージを表示しないようにします。

したがって、これはすべてうまくいくようです。奇妙なことに、コードをコピーして FSI に貼り付けると、特定の文字が何度も繰り返されるように見えます。貼り付けているバッファのサイズによって条件付けられているようです。小さなスニペットを貼り付けると、問題はないようです。しかし、大きな塊で貼り付けると、この奇妙な点があります。

私が次のことをした場合:

open System.IO;;

次に、このコード スニペットを FSI に貼り付けます。

let buildFileList basepath filespec =
    seq {
        yield! Directory.GetFiles(basepath, filespec, System.IO.SearchOption.AllDirectories)
        }

それはうまくいきます。しかし、それで終わるコードのより大きなチャンクをコピーして貼り付けると、その部分が収量まで繰り返されます! 何度も何度も。長いチャンクの最後に貼り付けられたときに同じコードが貼り付けられたときに解析エラー (FS0010 など) が発生するため、貼り付けられているコードを解析しようとする fsi に何らかの形で関連しているようですが、それは孤立しています。

ファイル全体を #load すると、正しく解析されるので、コードは問題ないと思います。

このコピー/貼り付けの奇妙な点は、コマンド ラインに ledit がある場合とない場合の両方で発生するようです。私はこの問題を自分で調査してもかまいませんが、どこでこれを進めるべきかについてちょっと困惑しています. それが違いを生む場合、GVimからコピーしていますが、この奇妙な動作の原因を特定するためにどこに進むべきか誰か知っていますか? 最初に TextEdit にコピーしてから fsi にコピーしようとする追加の手順を実行できると思いますが、それ以上のアイデアはありますか?

要するに、この奇妙な動作を見た人はいますか? そうでない場合、この奇妙な動作の原因を特定するためにどのように進めればよいかについての提案はありますか?

4

1 に答える 1